gpt4 book ai didi

javascript - 没有时间戳值的 JS 日期对象错误地返回一天

转载 作者:行者123 更新时间:2023-11-30 19:50:35 25 4
gpt4 key购买 nike

在下面的终端输出中,-(已接收)对象是通过将 moment.js 对象转换回 Date 对象生成的。 +(预期)对象以 new Date("2018-05") 格式创建,并且似乎失去了足够多的时间回到上个月最后一天的下午 5 点:

        Object {
- "x": 2018-05-01T00:00:00.000Z,
+ "x": 2018-04-30T17:00:00.000Z,
"y": 260,
},
Object {
- "x": 2018-06-01T00:00:00.000Z,
+ "x": 2018-05-31T17:00:00.000Z,
"y": 160,
},
Object {
- "x": 2018-07-01T00:00:00.000Z,
+ "x": 2018-06-30T17:00:00.000Z,
"y": 40,
},

测试代码和测试期望代码都在我的电脑上,所以我不明白为什么日期对象会发生轻微变化,有人知道为什么吗?这是我的 Jest 测试代码:

test('raw data is properly totalled (prepareData)', () => {
expect(lineChart.prepareData(mockXYObjects(dataCloneMultiplier), 12, "month"))
.toStrictEqual([
{x : new Date("2018-05"), y : 13 * dataCloneMultiplier},
{x : new Date("2018-06"), y : 8 * dataCloneMultiplier},
{x : new Date("2018-07"), y : 2 * dataMultiplier},
])
});

最佳答案

我猜你住在西半球?如果没有时间戳,Date 对象将被初始化为 UTC 时间,而不是您所在的时区。所以时间将是 UTC 的午夜,但如果你在东部时区,则前一天是美国东部标准时间 19:00。解决方案是在创建时将所需时区添加到日期字符串中。

关于javascript - 没有时间戳值的 JS 日期对象错误地返回一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54515690/

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