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 相关文章推荐
给jqGrid数据行添加修改和删除操作链接(之一)
Nov 04 Javascript
jquery mobile事件多次绑定示例代码
Sep 13 Javascript
js操作label给label赋值及取label的值示例
Nov 07 Javascript
Angular 理解module和injector,即依赖注入
Sep 07 Javascript
js实现页面刷新滚动条位置不变
Nov 27 Javascript
Vue实现表格中对数据进行转换、处理的方法
Sep 06 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
Nov 13 Javascript
使用express获取微信小程序二维码小记
May 21 Javascript
layui动态绑定事件的方法
Sep 20 Javascript
vue 实现LED数字时钟效果(开箱即用)
Dec 08 Javascript
JS document form表单元素操作完整示例
Jan 13 Javascript
JavaScript函数柯里化
Nov 07 Javascript
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如何连接sql server
2015/10/16 PHP
thinkPHP2.1自定义标签库的导入方法详解
2016/07/20 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
PDO实现学生管理系统
2020/03/21 PHP
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
2015/12/08 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
详解Nodejs的timers模块
2016/12/22 NodeJs
js放大镜放大购物图片效果
2017/01/18 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
Python字符遍历的艺术
2008/09/06 Python
Python3 入门教程 简单但比较不错
2009/11/29 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
解决python给列表里添加字典时被最后一个覆盖的问题
2019/01/21 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
python项目对接钉钉SDK的实现
2019/07/15 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
擅自离岗检讨书
2014/02/11 职场文书
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
网络管理专业求职信
2014/03/15 职场文书
写给老婆的保证书
2015/02/27 职场文书
2015年工程部工作总结
2015/04/30 职场文书
宪法宣传标语100条
2019/10/15 职场文书
Python实现8种常用抽样方法
2021/06/27 Python
MySQL 如何限制一张表的记录数
2021/09/14 MySQL
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers