在下面的终端输出,上述 - (接收的)正在被转换moment.js生成的对象对象退回到日期的对象。该+(预期)对象格式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,
},
无论是测试代码和测试代码的期望是我的电脑上,所以我不明白为什么日期对象稍微改变,没有人知道为什么吗?这里是我的笑话测试代码:
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:00EST前一天。解决的办法是,当你创建你想要的时区添加到日期字符串。