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把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!