·您当前的位置:首页 > 技术教程 > JavaScript >

[JS]js时间戳转换后回显5分钟前2小时前的字样的源代码

时间:2016-11-16 10:43酷播
在新浪微博首页看到每条微博后边显示的时间并不是标准的年-月-日格式,而是经过换算的时间差,如:发表于5分钟前、发表于2小时前,比起标准的时间显示格式

在新浪微博首页看到每条微博后边显示的时间并不是标准的年-月-日格式,而是经过换算的时间差,如:发表于5分钟前、发表于“2小时前”,比起标准的时间显示格式,貌似更加直观和人性化。要实现类似功能,用JS就可以,实现方法如下:

  1. //JavaScript函数: 
  2. var minute = 1000 * 60; 
  3. var hour = minute * 60; 
  4. var day = hour * 24; 
  5. var halfamonth = day * 15; 
  6. var month = day * 30; 
  7. function getDateDiff(dateTimeStamp){ 
  8. var now = new Date().getTime(); 
  9. var diffValue = now - dateTimeStamp; 
  10. if(diffValue < 0){ 
  11.  //若日期不符则弹出窗口告之 
  12.  //alert("结束日期不能小于开始日期!"); 
  13.  } 
  14. var monthC =diffValue/month; 
  15. var weekC =diffValue/(7*day); 
  16. var dayC =diffValue/day; 
  17. var hourC =diffValue/hour; 
  18. var minC =diffValue/minute; 
  19. if(monthC>=1){ 
  20.  result="发表于" + parseInt(monthC) + "个月前"; 
  21.  } 
  22.  else if(weekC>=1){ 
  23.  result="发表于" + parseInt(weekC) + "周前"; 
  24.  } 
  25.  else if(dayC>=1){ 
  26.  result="cuplayer.com:发表于"+ parseInt(dayC) +"天前"; 
  27.  } 
  28.  else if(hourC>=1){ 
  29.  result="发表于"+ parseInt(hourC) +"个小时前"; 
  30.  } 
  31.  else if(minC>=1){ 
  32.  result="发表于"+ parseInt(minC) +"分钟前"; 
  33.  }else 
  34.  result="cuplayer.com:刚刚发表"
  35. return result; 

若你得到的时间格式不是时间戳,可以使用下面的JavaScript函数把字符串转换为时间戳, 本函数的功能相当于JS版的strtotime:

  1. //js函数代码:字符串转换为时间戳 
  2. function getDateTimeStamp(dateStr){ 
  3.  return Date.parse(dateStr.replace(/-/gi,"/")); 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器