1

我有这个日期格式:Tue Oct 20 2020 00:00:00 GMT+0100(中欧标准时间)

当我这样做时:

myValue.toISOString();

这就是我得到的

2020-10-19T23:00:00.000Z

就是减一天。

如何在不更改日期格式的情况下解决此问题?

4

2 回答 2

1

toISOString() 方法以简化的扩展 ISO 格式 (ISO 8601) 返回一个字符串,该字符串的长度始终为 24 或 27 个字符(YYYY-MM-DDTHH:mm:ss.sssZ 或 ±YYYYYY-MM-DDTHH:mm:ss。 sssZ,分别)。时区始终为零 UTC 偏移量,如后缀“Z”所示。

由于您当前的时区(中欧标准时间)是 GMT+1 这就是为什么您有第 1 天的时间。这实际上只是 UTC 当前时间。您所在的地区比 UTC 早一小时。如果您在一天中的不同时间检查,这将不是一天的差异,而是一小时的差异。

于 2020-10-21T16:31:13.863 回答
-1
let date = new Date('Tue Oct 20 2020 00:00:00 GMT+0100');
console.log('date: ' + JSON.stringify(date));
let result = date.toLocaleDateString("fr-CA",{year:"numeric", month:"2-digit", day:"2-digit"});
console.log('result: ' + JSON.stringify(result));

日期:“2020-10-19T23:00:00.000Z”

结果:“2020-10-20”

于 2020-10-21T17:01:32.757 回答