+
96
-

回答

<script>
//微信聊天内容时间显示
function timestampFormat(timestamp) {
function zeroize(num) {
return (String(num).length == 1 ? '0': '') + num;
}

var curTimestamp = parseInt(new Date().getTime() / 1000); //当前时间戳
var timestampDiff = curTimestamp - timestamp; // 参数时间戳与当前时间戳相差秒数

var curDate = new Date(curTimestamp * 1000); // 当前时间日期对象
var tmDate = new Date(timestamp * 1000); // 参数时间戳转换成的日期对象

var Y = tmDate.getFullYear(),
m = tmDate.getMonth() + 1,
d = tmDate.getDate();
var H = tmDate.getHours(),
i = tmDate.getMinutes(),
s = tmDate.getSeconds();

if (timestampDiff < 60) {
// 一分钟以内
return "刚刚";
} else if (timestampDiff < 3600) {
// 一小时前之内
return Math.floor(timestampDiff / 60) + "分钟前";
} else if (curDate.getFullYear() == Y && curDate.getMonth()+1 == m && curDate.getDate() == d) {
return '今天' + zeroize(H) + ':' + zeroize(i);
} else {
var newDate = new Date((curTimestamp - 86400) * 1000); // 参数中的时间戳加一天转换成的日期对象
if (newDate.getFullYear() == Y && newDate.getMonth()+1 == m && newDate.getDate() == d) {
return '昨天' + zeroize(H) + ':' + zeroize(i);
} else if (curDate.getFullYear() == Y) {
return zeroize(m) + '月' + zeroize(d) + '日 ' + zeroize(H) + ':' + zeroize(i);
} else {
return Y + '年' + zeroize(m) + '月' + zeroize(d) + '日 ' + zeroize(H) + ':' + zeroize(i);
}
}
}

console.log(timestampFormat(Date.parse('2019-10-11 15:26:10')/1000)); //刚刚
console.log(timestampFormat(Date.parse('2019-10-11 15:10:10')/1000)); //16分钟前
console.log(timestampFormat(Date.parse('2019-10-11 10:10:10')/1000)); //今天10:10
console.log(timestampFormat(Date.parse('2019-10-10 10:10:10')/1000)); //昨天10:10
console.log(timestampFormat(Date.parse('2019-02-10 10:10:10')/1000)); //02月10日 10:10
console.log(timestampFormat(Date.parse('2019-10-10 10:10:10')/1000)); //2012年10月10日 10:10

//微信聊天会话列表时间显示
function wxtimestampFormat(timestamp) {
function zeroize(num) {
return (String(num).length == 1 ? '0': '') + num;
}

var curTimestamp = parseInt(new Date().getTime() / 1000); //当前时间戳
var timestampDiff = curTimestamp - timestamp; // 参数时间戳与当前时间戳相差秒数

var curDate = new Date(curTimestamp * 1000); // 当前时间日期对象
var tmDate = new Date(timestamp * 1000); // 参数时间戳转换成的日期对象

var Y = tmDate.getFullYear(),
m = tmDate.getMonth() + 1,
d = tmDate.getDate();
var H = tmDate.getHours(),
i = tmDate.getMinutes(),
s = tmDate.getSeconds();

if (timestampDiff < 60) {
// 一分钟以内
return "刚刚";
} else if (timestampDiff < 3600) {
// 一小时前之内
return Math.floor(timestampDiff / 60) + "分钟前";
} else if (curDate.getFullYear() == Y && curDate.getMonth()+1 == m && curDate.getDate() == d) {
return '今天';
} else {
var newDate = new Date((curTimestamp - 86400) * 1000); // 参数中的时间戳加一天转换成的日期对象
if (newDate.getFullYear() == Y && newDate.getMonth()+1 == m && newDate.getDate() == d) {
return '昨天';
} else if (curDate.getFullYear() == Y) {
return zeroize(m) + '/' + zeroize(d) + '/';
} else {
return Y + '/' + zeroize(m) + '/' + zeroize(d) + '/';
}
}
}
console.log(wxtimestampFormat(Date.parse('2020-2-11 15:26:10')/1000)); //刚刚
console.log(wxtimestampFormat(Date.parse('2019-10-11 15:10:10')/1000)); //16分钟前
console.log(wxtimestampFormat(Date.parse('2019-10-11 10:10:10')/1000)); //今天10:10
console.log(wxtimestampFormat(Date.parse('2019-10-10 10:10:10')/1000)); //昨天10:10
console.log(wxtimestampFormat(Date.parse('2019-02-10 10:10:10')/1000)); //02月10日 10:10
console.log(wxtimestampFormat(Date.parse('2019-10-10 10:10:10')/1000)); //2012年10月10日 10:10
</script>

网友回复

我知道答案,我要回答