JS转换时间戳为“刚刚”、“1分钟前”、“2小时前”“1天前”等格式

世界杯波兰排名 2025-07-03 00:02:05

在一些网站显示的时间并不是标准的年-月-日格式,而是经过换算的时间差,如:发表于5分钟前、发表于“2小时前”,比起标准的时间显示格式,貌似更加直观和人性化。要实现类似功能,用JS就可以,实现方法如下:

//JavaScript函数:

function getDateDiff(dateTimeStamp) {

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) {

//若日期不符则弹出窗口告之

//alert("结束日期不能小于开始日期!");

}

var monthC = diffValue / month;

var weekC = diffValue / (7 * day);

var dayC = diffValue / day;

var hourC = diffValue / hour;

var minC = diffValue / minute;

if (monthC >= 1) {

result = "发表于" + parseInt(monthC) + "个月前";

} 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;

}

若你得到的时间格式不是时间戳(2021-01-14 或 2021-01-14 12:30:12),可以使用下面的JavaScript函数把字符串转换为时间戳, 本函数的功能相当于JS版的strtotime:

//js函数代码:字符串转换为时间戳

function getDateTimeStamp(dateStr){

return Date.parse(dateStr.replace(/-/gi,"/"));

}