后台给的时间格式是"2017/11/28 11:20:00"
而产品UI那边要求在前端显示的是 11月28日 刚刚
于是便封装了个便于使用的方法
直接调用
var time =
"2017/11/28 11:20:00";
getDateTimeStamp(time); //结果返回的应该是距离该日期的时间段 刚刚、几天前、几月前、几年前、几小时前。
formatDatebox(time) //结果返回的应该是2017年11月28日 11:20。
// 距离日计算
function getDateDiff(dateTimeStamp) {
var result;
var minute =
1000 *
60;
var hour = minute *
60;
var day = hour *
24;
var halfamonth = day *
15;
var month = day *
30;
var now =
new Date().getTime();
var diffValue = now - dateTimeStamp;
if (diffValue <
0) {
return;
}
var monthC = diffValue / month;
var weekC = diffValue / (
7 * day);
var dayC = diffValue / day;
var hourC = diffValue / hour;
var minC = diffValue / minute;
if (monthC >=
1) {
if (monthC <=
12)
result =
"" + parseInt(monthC) +
"月前";
else {
result =
"" + parseInt(monthC /
12) +
"年前";
}
}
else
if (weekC >=
1) {
result =
"" + parseInt(weekC) +
"周前";
}
else
if (dayC >=
1) {
result =
"" + parseInt(dayC) +
"天前";
}
else
if (hourC >=
1) {
result =
"" + parseInt(hourC) +
"小时前";
}
else
if (minC >=
1) {
result =
"" + parseInt(minC) +
"分钟前";
}
else {
result =
"刚刚";
}
return result;
};
//时间戳
function getDateTimeStamp(dateStr) {
var datatime = Date.parse(dateStr.replace(/-/gi,
"/"));
return getDateDiff(datatime);
}
//日期格式化
function formatDatebox(value) {
var year = value.substr(
0,
4);
var index1 = value.indexOf(
"-");
var index2 = value.lastIndexOf(
"-");
var cha = parseInt(index2) - (parseInt(index1) +
1);
var month = value.substr((parseInt(index1) +
1), cha);
var kg = value.indexOf(
" ");
cha = parseInt(kg) - parseInt(index2);
var day = value.substr(parseInt(index2) +
1, cha);
var mh = value.indexOf(
":");
cha = parseInt(mh) - (parseInt(kg) +
1);
var hour1 = value.substr(parseInt(kg) +
1, cha);
var mh2 = value.lastIndexOf(
":");
cha = parseInt(mh2) - (parseInt(mh) +
1);
var hour2 = value.substr(parseInt(mh) +
1, cha);
return month +
"月" + day +
"日 " + hour1 +
":" + hour2;
}
module.exports = {
getDateTimeStamp: getDateTimeStamp,
formatDatebox:formatDatebox
}