toISOString()在4月初返回错误的数据

mic*_*mut 1 javascript

我使用该方法toISOString()将日期转换为ISO字符串

 console.log(date);
 var x = date.toISOString();
 console.log(x);
Run Code Online (Sandbox Code Playgroud)

我的输入日期对象包含以下数据 Wed Apr 01 2020 01:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)

输出toISOString()2020-03-31T23:00:00.000Z

我试图找到一个关于这个奇怪结果的解决方案和解释,因为它只发生在四月一日 - 这不是一个四月的笑话.有人可以解释这种行为吗?或者可以给我一个提示,我怎样才能得到正确的价值?

hts*_*ame 7

简单.你的时区是+0200 GMT,toISOString()给你Zulu时间.这里的一切都是正确的.

  • _“那么为什么日期改变了”_ - **它没有**。当你从早上 1:00 减去 2 小时,那么你当然会在 23:00 _前一天_着陆......_已经_改变的是,你的本地时区现在比 UTC 早_两个_小时,而“昨天”它只提前了一个小时。再次强调:**DST** 是这里的问题。 (2认同)