js计算某个时间距离现在有几年几月几日几分几秒之前的方法

数据类型

使用js时间戳
console.log(Date.now()) //1642471441587
或者转化为时间戳才能使用
Date.parse(“2022/1/18 10:05”) //1642471500000
将时间戳转化成时间格式的方法如下–链接查看
https://mp.weixin.qq.com/s?__biz=MjM5MDA2MTI1MA==&mid=2649121025&idx=2&sn=aff0bf6598f07e6b93f20134b1cfac89&chksm=be5846ac892fcfba7a9c382850cf8783d54d4fe8498843b14957d2bba79fdf39f6cd640c66f5&scene=27

代码

时间戳与正常时间了解了之后就上代码


function get_time_diff(time) {
  var diff = '';
  var time_diff = new Date().getTime() - time;

  // 计算相差年数
  var years = Math.floor(time_diff / (365 * 24 * 3600 * 1000));
  if (years > 0) {
    diff += years + '年';
  } else {
    // 计算相差月数
    var months = Math.floor(time_diff / (30 * 24 * 3600 * 1000));
    if (months > 0) {
      diff += months + '月';
    } else {
      // 计算相差天数 
      var days = Math.floor(time_diff / (24 * 3600 * 1000));
      if (days > 0) {
        diff += days + '天';
      } else {
        // 计算相差小时数 
        var leave1 = time_diff % (24 * 3600 * 1000);
        var hours = Math.floor(leave1 / (3600 * 1000));
        if (hours > 0) {
          diff += hours + '小时';
        } else {
          // 计算相差分钟数 
          var leave2 = leave1 % (3600 * 1000);
          var minutes = Math.floor(leave2 / (60 * 1000));
          if (minutes > 0) {
            diff += minutes + '分';
          } else {
            // 计算相差秒数 
            var leave3 = leave2 % (60 * 1000);
            var seconds = Math.round(leave3 / 1000);
            if (seconds > 0) {
              diff += seconds + '秒';
            }
          }
        }
      }
    }
  }

  return diff;
}

其实这个也是抄的 我改了改 改成如果一天前就不显示时分秒这种的了
礼貌贴原文链接
https://juejin.cn/post/6844903704810749965

测试代码

const now = new Date().getTime();

// Test cases
const result1 = get_time_diff(now - 2 * 24 * 3600 * 1000);
const result2 = get_time_diff(now - 2 * 3600 * 1000);
const result3 = get_time_diff(now - 2 * 60 * 1000);
const result4 = get_time_diff(now - 2 * 1000);

// Assertion
assert.strictEqual(result1, '2天');
assert.strictEqual(result2, '2小时');
assert.strictEqual(result3, '2分');
assert.strictEqual(result4, '2秒');

结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值