源码如下:
/** * 时间显示 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}); }
使用示例:
dateShow(1520409790)
来源:jsfun.cn