gpt4 book ai didi

javascript - 为什么 moment js 给出的毫秒数不一样?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:39:25 28 4
gpt4 key购买 nike

我使用 moment js 得到同一日期不同毫秒的错误。

我正在从服务器获取数据 ('-2208988800000')。我转换了 'DD-MMM-YYYY' 中的值。现在我又想要相同的毫秒数,为什么我在同一日期得到不同的毫秒数?这是我的代码

http://plnkr.co/edit/1QoWLoFqkNAe2ebZ0V01?p=preview

我有两个控制台 x1x2。他们是不同的,为什么?

var x = '-2208988800000'
var d = new Date(moment(new Date(parseInt(x)).toUTCString()).format('DD-MMM-YYYY'));
console.log(d)
var x2 = moment(new Date(d).toUTCString()).format('x');
console.log(x2)
// why x1 and x2 is different
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

如何获得相同的值?

最佳答案

您在时刻对象、日期对象和字符串之间来回进行了大量操作。目前还不清楚您真正想要完成什么,但这些都不是必需的。

至于结果,对日期构造函数的第一次调用是获取字符串值 '31-Dec-1899',因此您可以将示例简化为:

var d = new Date('31-Dec-1899');
console.log(+d);

这将根据您运行的浏览器给出不同的结果(因为日期对象的解析实现在非标准格式时取决于实现),并且它会因运行代码的时区而异(因为假定该值是本地时间)。

对我来说,在美国太平洋时区的 Windows 10 上运行 Chrome 70,这会记录 -2209046400000。您可能会得到不同的结果。

一般来说,不要做那么多的操作。您可能需要的大多数功能都内置在 Moment 中。任何时候您发现自己转换为字符串并返回对象,或者使用 Date 构造函数,您都可能引入错误。

关于javascript - 为什么 moment js 给出的毫秒数不一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53160139/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com