时间显示 1分钟内显示几秒前,1小时间内显示几分钟前,1天内显示几小时前,7天内显示几天前,其它显示真实时间

源码如下:

/**
* 时间显示 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

原文地址:https://www.cnblogs.com/jsfuns/p/8590782.html