1. 转换为 2021-8-29 2:25:46 格式
let date ='2021-08-29T02:25:46.883Z'
const arr = date.split('T');
// 得到 年月日的 数组
const d = arr[0]; //2021-08-29
const darr = d.split('-'); // [2021,08,29]
// 得到 时分秒的数组
const t = arr[1];
const tarr = t.split('.000');
const marr = tarr[0].split(':'); //[02,25,46.883Z]
// 拼接为标准的时间格式 :
const dd =
parseInt(darr[0]) + '-' + parseInt(darr[1]) + '-' + parseInt(darr[2]) +
' ' +
parseInt(marr[0]) + ':' + parseInt(marr[1]) + ':' + parseInt(marr[2]);
2. 将时间 转换为 毫秒差的形式,便于计算
getTime( ) 获取北京时间1970年01月01日08时00分00秒起至现在东八区时间的总毫秒数
let common= new Date(dd).getTime()
let now = new Date().getTime()
// 获得差值:
let cha = now -common
3.计算差值中还有几个 年 月 日
// 将 年月日时分秒 的一单位 转换为 毫秒数
let minute = 1000 * 60;
let hour = minute * 60;
let day = hour * 24;
let halfamonth = day * 15;
let month = day * 30;
let year = day * 365;
if (cha < 0) {
return;
}
let monthEnd = parseInt(cha / month);
let weekEnd = parseInt(cha / (7 * day));
let dayEnd = parseInt(cha / day);
let hourEnd = parseInt(cha / hour);
let minEnd = parseInt(cha / minute);
let yearEnd =parseInt( cha / year);
if (yearEnd >= 1) {
result = dateTime;
} else if (monthEnd >= 1) {
result = "" + monthEnd + "月前";
} else if (weekEnd >= 1) {
result = "" + weekEnd + "周前";
} else if (dayEnd >= 1) {
result = "" + dayEnd + "天前";
} else if (hourEnd >= 1) {
result = "" + hourEnd + "小时前";
} else if (minEnd >= 1) {
result = "" + minEnd + "分钟前";
} else {
result = "刚刚";
}
over …