JS转换时间戳为“刚刚”、“1分钟前”、“2小时前”“1天前”等格式
在一些网站显示的时间并不是标准的年-月-日格式,而是经过换算的时间差,如:发表于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,"/"));
}