源码如下:
/**
* 时间显示 1分钟内显示几秒前,1小时间内显示几分钟前,1天内显示几小时前,7天内显示几天前,其它显示真实时间
* @param {string} format 格式
* @param {int} timestamp php时间戳
*/
function dateShow(timestamp){
//如果传进来的是10位的时间戳 变成13位的
if(timestamp.toString().length == 10) timestamp = timestamp * 1000
//如果到这一步,依然不是13位的时间戳,说明数据有问题
timestamp = parseInt(timestamp)
var jsdate=((timestamp) ? new Date(timestamp) : new Date());
var nowdate=new Date(); //开始时间
var tempdate=nowdate.getTime()-jsdate.getTime(); //时间差的毫秒数
//计算出相差天数
var days=Math.floor(tempdate/(24*3600*1000));
if(days>=1 && days<7){
return days+"天前";
}
//计算出小时数
var hours=Math.floor(tempdate/(3600*1000)); //计算天数后剩余的毫秒数
if(hours>=1 && hours<24){
return hours+"小时前";
}
//计算相差分钟数
var minutes=Math.floor(tempdate/(60*1000)); //计算小时数后剩余的毫秒数
if(minutes>=1 && minutes<60){
return minutes+"分钟前";
}
//计算相差秒数
var seconds=Math.floor(tempdate/1000) ;
if(seconds<60){
return seconds+"秒钟前";
}
return jsdate.toLocaleString('chinese',{hour12:false});
}
使用示例:
console.log(dateShow(1520409790));
来源:jsfun.cn