JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式


Posted in Javascript onJuly 10, 2019

最近在做项目的时候,需要把后台返回的时间转换成几秒前、几分钟前、几小时前、几天前等的格式;后台返回的时间格式为:2015-07-30 09:36:10,需要根据当前的时间与返回的时间进行对比,最后显示成几秒前、几分钟前、几小时前、几天前的形式。

1.由于返回的时间是字符串格式,所以要先转换成时间戳

//字符串转换为时间戳
function getDateTimeStamp (dateStr) {
  return Date.parse(dateStr.replace(/-/gi,"/"));
}

2.将返回的时间戳与当前时间戳进行比较,转换成几秒前、几分钟前、几小时前、几天前的形式。

function getDateDiff (dateStr) {
  var publishTime = getDateTimeStamp(dateStr)/1000,
    d_seconds,
    d_minutes,
    d_hours,
    d_days,
    timeNow = parseInt(new Date().getTime()/1000),
    d,
    date = new Date(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){
    return d_days + '天前';
  }else if(d_days <= 0 && d_hours > 0){
    return d_hours + '小时前';
  }else if(d_hours <= 0 && d_minutes > 0){
    return d_minutes + '分钟前';
  }else if (d_seconds < 60) {
    if (d_seconds <= 0) {
      return '刚刚发表';
    }else {
      return d_seconds + '秒前';
    }
  }else if (d_days >= 3 && d_days < 30){
    return M + '-' + D + ' ' + H + ':' + m;
  }else if (d_days >= 30) {
    return Y + '-' + M + '-' + D + ' ' + H + ':' + m;
  }
}

3.使用方法:

dateStr:返回的时间字符串,格式如:2015-07-30 09:36:10

// 转换后的结果 
var str = getDateDiff(dateStr);
// 在控制台输出结果 
console.log(str);

总结

以上所述是小编给大家介绍的JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
jquery实现的缩略图预览滑块实例
Jun 25 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
Aug 21 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
Aug 29 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
Mar 03 Javascript
seajs中模块依赖的加载处理实例分析
Oct 10 Javascript
基于vue-ssr服务端渲染入门详解
Jan 08 Javascript
微信小程序时间标签和时间范围的联动效果
Feb 15 Javascript
详解基于 Node.js 的轻量级云函数功能实现
Jul 08 Javascript
vue移动端模态框(可传参)的实现
Nov 20 Javascript
JavaScript canvas绘制圆弧与圆形
Feb 18 Javascript
Vue解决echart在element的tab切换时显示不正确问题
Aug 03 Javascript
vuex Module将 store 分割成模块的操作
Dec 07 Vue.js
JS将时间秒转换成天小时分钟秒的字符串
Jul 10 #Javascript
js Array.slice的8种不同用法示例
Jul 10 #Javascript
vue-router二级导航切换路由及高亮显示的实现方法
Jul 10 #Javascript
Vue编程式跳转的实例代码详解
Jul 10 #Javascript
微信小程序在ios下Echarts图表不能滑动的问题解决
Jul 10 #Javascript
Vue事件修饰符native、self示例详解
Jul 09 #Javascript
如何自定义微信小程序tabbar上边框的颜色
Jul 09 #Javascript
You might like
PHP 操作文件的一些FAQ总结
2009/02/12 PHP
php网页病毒清除类
2014/12/08 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
2019/06/05 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
jquery实现横向图片轮播特效代码分享
2015/11/19 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
AngularJS 打开新的标签页实现代码
2017/09/07 Javascript
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
JavaScript通如何过RGraph实现动态仪表盘
2020/10/15 Javascript
vue编写简单的购物车功能
2021/01/08 Vue.js
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
使用python实现baidu hi自动登录的代码
2013/02/10 Python
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
python logging日志模块的详解
2017/10/29 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
python pickle存储、读取大数据量列表、字典数据的方法
2019/07/07 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
白色公司:The White Company
2017/10/11 全球购物
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
应聘自荐书
2013/10/08 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
《打电话》教学反思
2016/02/22 职场文书