JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
最近在做项目的时候,需要把后台返回的时间转换成几秒前、几分钟前、几小时前、几天前等的格式;后台返回的时间格式为:2015-07-3009:36:10,需要根据当前的时间与返回的时间进行对比,最后显示成几秒前、几分钟前、几小时前、几天前的形式。
1.由于返回的时间是字符串格式,所以要先转换成时间戳
//字符串转换为时间戳
functiongetDateTimeStamp(dateStr){
returnDate.parse(dateStr.replace(/-/gi,"/"));
}
2.将返回的时间戳与当前时间戳进行比较,转换成几秒前、几分钟前、几小时前、几天前的形式。
functiongetDateDiff(dateStr){
varpublishTime=getDateTimeStamp(dateStr)/1000,
d_seconds,
d_minutes,
d_hours,
d_days,
timeNow=parseInt(newDate().getTime()/1000),
d,
date=newDate(publishTime*1000),
Y=date.getFullYear(),
M=date.getMonth()+1,
D=date.getDate(),
H=date.getHours(),
m=date.getMinutes(),
s=date.getSeconds();
//小于10的在前面补0
if(M<10){
M='0'+M;
}
if(D<10){
D='0'+D;
}
if(H<10){
H='0'+H;
}
if(m<10){
m='0'+m;
}
if(s<10){
s='0'+s;
}
d=timeNow-publishTime;
d_days=parseInt(d/86400);
d_hours=parseInt(d/3600);
d_minutes=parseInt(d/60);
d_seconds=parseInt(d);
if(d_days>0&&d_days<3){
returnd_days+'天前';
}elseif(d_days<=0&&d_hours>0){
returnd_hours+'小时前';
}elseif(d_hours<=0&&d_minutes>0){
returnd_minutes+'分钟前';
}elseif(d_seconds<60){
if(d_seconds<=0){
return'刚刚发表';
}else{
returnd_seconds+'秒前';
}
}elseif(d_days>=3&&d_days<30){
returnM+'-'+D+' '+H+':'+m;
}elseif(d_days>=30){
returnY+'-'+M+'-'+D+' '+H+':'+m;
}
}
3.使用方法:
dateStr:返回的时间字符串,格式如:2015-07-3009:36:10
//转换后的结果 varstr=getDateDiff(dateStr); //在控制台输出结果 console.log(str);
总结
以上所述是小编给大家介绍的JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!