0

当我在我的 JS 控制台中尝试以下代码时,它会返回正确的 UTC 表示法(-2 小时):

new Date('1978/04/03').toISOString()
-> "1978-04-02T22:00:00.000Z"

但是,从 4 月 2 日及之前开始,它表现出不同的行为:它只会减去 1 小时而不是 2:

new Date('1978/04/02').toISOString()
-> "1978-04-01T23:00:00.000Z"
4

1 回答 1

1

很可能是夏令时开始,但请注意,您的输入格式 ( yyyy/mm/dd) 不受官方支持,这意味着通过依赖它,您依赖于“......任何特定于实现的启发式或特定于实现的日期格式。 .." JavaScript 引擎碰巧支持,它因引擎而异(例如,浏览器到浏览器)。如果你的格式不是官方支持的格式,你最好自己解析。

但我怀疑你会发现甚至new Date(1978, 3, 3)new Date(1978, 3, 2)一个小时的差异,因为你的 JavaScript 引擎似乎正在解析那个字符串。

于 2020-04-06T08:16:28.750 回答