javascript时间转描述
2018-03-08 本文已影响9人
平仄_pingze
源码
function dateFormat(fmt, date) {
date = date || new Date();
let o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds(),
'q+': Math.floor((date.getMonth() + 3) / 3),
'S': date.getMilliseconds()
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (let k in o) {
if (new RegExp('(' + k + ')').test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1)
? (o[k])
: (('00' + o[k]).substr(('' + o[k]).length)));
}
}
return fmt;
}
function createTimeText(time) {
const now = new Date();
const diffSec = ~~((+now - time) / 1000);
time = new Date(+time);
if (diffSec < 0) {
return '';
} else if (diffSec < 60) {
return '刚刚';
} else if (diffSec < 3600) {
return `${~~(diffSec / 60)}分钟前`
} else if (diffSec < 86400) {
return `${~~(diffSec / 3600)}小时前`
} else if (diffSec < 691200) {
return `${~~(diffSec / 86400)}天前`
} else if (time.getFullYear() === now.getFullYear()) {
return dateFormat('MM-dd', time);
} else {
return dateFormat('yyyy-MM-dd', time);
}
}