使用moment.js转UTC日期到毫秒:为何date.getTime()与moment结果相等?
为什么
date.getTime()与moment().utc(date).valueOf()结果相等? 不管你用JavaScript原生的Date对象还是Moment.js处理时间,核心要明白一点:时间戳(UNIX纪元以来的毫秒数)是与时区无关的绝对数值。
- 你创建的
const date = new Date(),虽然显示的是西班牙本地时区(UTC+2)的时间,但它内部存储的本质是当前时刻对应的UTC时间戳,date.getTime()就是直接返回这个数值。 - 用
moment().utc(date)处理时,Moment.js会读取date内部的时间戳,只是把显示模式切换为UTC时区,但不会修改这个底层的时间戳数值。utc.valueOf()最终返回的还是同一个时间戳。
简单来说,时区只是时间的展示形式,而时间戳是时间的绝对计量值——不管怎么切换时区展示,这个计量值都不会发生改变,所以两者的结果必然相等。
内容的提问来源于stack exchange,提问作者Raul
相关产品推荐
相关产品推荐

