函数
思路
- 获取时间差
- 获取 时间节点A 到 格林威治的毫秒数
- 获取 时间节点B 到 格林威治的毫秒数
- 两个时间节点的毫秒数相减, 得到两个时间节点之间相差的毫秒数,因为相减的时候, 我不确定谁大谁小所以我最好是随便减一个, 取绝对值
- 换算时间
- 通过相差的毫秒数换算出是 多少天多少小时多少分钟多少秒
- 换算天数
总的秒数 / 一天的秒数 得到的就是 多少天(小数)
我们只需要整天数, 不够整天的按照小时算
Math.floor() 取整一下 - 换算小时
总的秒数 % 一天的秒数 剩下的就是不够一天的秒数
用剩下的秒数 / 一小时的秒数 得到的就是 多少小时(小数)
我门只需要整小时数, 不够一个小时的按照分钟取计算
Math.floor() 取整一下 - 换算分钟
总的秒数 % 一小时的秒数 剩下的就是不够一小时的秒数
用剩下的秒数 / 一分钟的秒数 得到的就是多少分钟(小数)
我们只需要整分钟数, 不够一分钟的按照秒钟计算
Math.floor() 取整一下 - 换算秒钟
总的秒数 % 一分钟的秒数 剩下的就是不够一分钟的秒数
函数编写
function timeDiff(time1, time2) {
var diff = Math.floor(Math.abs(time1.getTime() - time2.getTime()) / 1000)
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
var obj = {}
obj.day = day
obj.hours = hours
obj.minutes = minutes
obj.seconds = seconds
return obj
}
调用
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 + ' 秒!^_^')