时间戳除于1000是什么意思?
我的需求是当前时间戳+1天,百度得到的答案:
// 当前时间戳(秒级)let timestamp = Date.parse(new Date());
console.log('[今天时间戳:]',timestamp)
// + 1年
let targerTime = (timestamp/1000 + 86400)*1000;
console.log('[加1天的时间戳:]',targerTime);
有个地方不是很理解,为什么要先除于1000呢,有什么含义吗?直接+86400秒为什么不行?
回答:
- 你看的这个解决方案就是脱裤子放屁,多此一举。
+86400
是肯定不行的,你需要+86400 * 1000
这里面主要就这么几个知识 点:
JS 的时间戳是毫秒,
86400
是秒,相加需要乘以1000
:timestamp + 86400 * 1000
= (timestamp / 1000) * 1000 + 86400 * 1000
= (timestamp + 86400) * 1000
你看看上面这样是不是多此一举
Date.parse()
得到的结果,永远都会是以000
结尾,即没有毫秒精度的时间戳:Date.parse(new Date())
= Date.parse( (new Date()).toString() )
= Date.parse( 'Tue Oct 19 2021 09:45:53 GMT+0800 (中国标准时间)' ) // 先调用 `.toString()` 方法之后再 `parse()`
Date.prototype.toString()
方法默认格式会没有毫秒精度,可以试试下面这样:Date.ptorotype.toString = Date.prototype.toISOString
Date.parse(new Date())
得到的结果就有可能是
1634608265224
这样的值了,这个时候,你才需要使用(timestamp/1000 + 86400)*1000
,但也不是这样,而是:(Math.round(timestamp/1000) + 86400)*1000
,把timestamp / 1000
之后,Math.round
去掉后面的小数部分,得到一个纯净的时间戳
回答:
你自己执行一下不就知道了……
JS 里取得的所谓“时间戳”是毫秒级的;而我们平时提的“时间戳”其实是指“Unix 时间戳”,它是秒级的。
毫秒和秒怎么换算不用多说了吧?
回答:
这只是他给出的一种处理方法,你可以不用他的按照你自己的思路来写,除以1000以后是在秒级进行操作(数字小利于计算),不除以1000则是在毫秒级进行操作,
回答:
js的时间戳是毫秒级,转换一下,只是为了将时间控制在秒这个级别
回答:
直接加86400*1000不行?
以上是 时间戳除于1000是什么意思? 的全部内容, 来源链接: utcz.com/p/936344.html