求两个时间的时间差

求两个时间的时间差

函数

思路

  • 获取时间差
    1. 获取 时间节点A 到 格林威治的毫秒数
    2. 获取 时间节点B 到 格林威治的毫秒数
    3. 两个时间节点的毫秒数相减, 得到两个时间节点之间相差的毫秒数,因为相减的时候, 我不确定谁大谁小所以我最好是随便减一个, 取绝对值
  • 换算时间
    1. 通过相差的毫秒数换算出是 多少天多少小时多少分钟多少秒
    2. 换算天数
      总的秒数 / 一天的秒数 得到的就是 多少天(小数)
      我们只需要整天数, 不够整天的按照小时算
      Math.floor() 取整一下
    3. 换算小时
      总的秒数 % 一天的秒数 剩下的就是不够一天的秒数
      用剩下的秒数 / 一小时的秒数 得到的就是 多少小时(小数)
      我门只需要整小时数, 不够一个小时的按照分钟取计算
      Math.floor() 取整一下
    4. 换算分钟
      总的秒数 % 一小时的秒数 剩下的就是不够一小时的秒数
      用剩下的秒数 / 一分钟的秒数 得到的就是多少分钟(小数)
      我们只需要整分钟数, 不够一分钟的按照秒钟计算
      Math.floor() 取整一下
    5. 换算秒钟
      总的秒数 % 一分钟的秒数 剩下的就是不够一分钟的秒数

函数编写

  
// 1. 准备一个计算两个时间之间时间差的函数
function timeDiff(time1, time2) {
  // 两个参数表示两个时间节点

  // 2. 计算两个时间节点之间的差值(天, 小时, 分钟, 秒钟)
  // 2-1. 计算两个时间节点之间相差的秒数
  var diff = Math.floor(Math.abs(time1.getTime() - time2.getTime()) / 1000)
  // 2-2. 通过 diff 换算两个时间节点之间相差的天, 小时, 分钟, 秒钟
  var day = Math.floor( diff / (60 * 60 * 24) )
  var hours = Math.floor( diff % (60 * 60 * 24) / (60 * 60) )
  var minutes = Math.floor( diff % (60 * 60) / 60 )
  var seconds = diff % 60

  // 3. 返回一个对象, 里面包含所有信息
  // 3-1. 创建一个对象
  var obj = {}
  // 3-2. 向对象里面添加成员
  obj.day = day // 把 day 变量的值赋值给了 obj 的 day 成员
  obj.hours = hours
  obj.minutes = minutes
  obj.seconds = seconds
  // 3-3. 把这个对象返回
  return obj
}

调用

  // 使用 timeDiff 函数计算两个时间节点之间的时间差
    var time1 = new Date('2020-5-22 16:50:33')
    var time2 = new Date()
    var res = timeDiff(time1, time2)
    console.log('距离出去浪还有 ' + res.day + ' 天 ' + res.hours + ' 小时 ' + res.minutes + ' 分钟 ' + res.seconds + ' 秒!^_^')

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值