【 javascript】获取时间差(适用于倒计时)


获取两个时间节点之间相差 xx 天 xx 小时 xx 分钟 xx 秒钟

思路

1. 准备两个时间对象
2. 两个时间对象相减(可以,但有兼容问题, IE版本不好使)
-> 得到:就是两个时间对象时间戳的差值
-> 为了兼容,获取两个时间节点的时间戳,相减
-> 相减之后取一个绝对值,就不需要考虑谁大谁小
-> 结果是 毫秒ms, 最好 /1000 以后在取整
3. 换算
-> 换算天:diffTime / 一天的秒数, 取整
-> 换算小时:diffTime % 一天的秒数 / 一小时的秒数, 取整
-> 换算分钟:diffTime % 一小时的秒数 / 一分钟的秒数, 取整

4. 封装为函数
-> 准备一个函数, 接收两个时间对象
-> 在函数内部计算时间差
-> 返回结果(为了后续使用并且方便调用,字符串、数组、对象选择返回一个对象

开始操作

1、准备两个时间对象

var time1 = new Date()
// 月份是数字的时候, 0 代表 1 月, 11 代表 12 月
var time2 = new Date(2022 , 2 , 18 , 10 , 24 , 00)

2、使用时间戳相减

// Math.abs()函数返回一个数字的绝对值
var diffTime = Math.round(Math.abs(time1.getTime() = time2.getTime()) / 1000)
console.log(diffTime)

3、换算

var day = parseInt(diffTime / (60 * 60 * 24))
var hours = parseInt(diffTime % (60 * 60 * 24) / (60 * 60))
var minutes = parseInt(diffTime % (60 * 60) / 60)
var seconds = parseInt(diffTime % 60)

console.log(`距离time2还有 ${day}${hours} 小时 ${minutes} 分钟 ${seconds} 秒钟`)

4、准备函数

/**
  * 获取时间差。
  * @param {TIME} time1 时间节点1
  * @param {TIME} time2 时间节点2
  * @return { Object } 以对象形式返回
*/
function getTimeDifference(time1, time2){
	// 计算时间差
	// Math.round(): 用来取整
	// Math.abs(): 用来取绝对值
	var diffTime = Math.round(Math.abs(time1.getTime() = time2.getTime()) / 1000)
	var day = parseInt(diffTime / (60 * 60 * 24))
	var hours = parseInt(diffTime % (60 * 60 * 24) / (60 * 60))
	var minutes = parseInt(diffTime % (60 * 60) / 60)
	var seconds = parseInt(diffTime % 60)
	// 返回
	// 按照字符串返回,不够灵活
	// 按照数组返回,指向性不够明确
	// 按照对象返回, 数据足够灵活,指向性足够明确
	return {
		day : day,
		hours : hours,
		minutes : minutes,
		seconds : seconds
	}
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值