为什么 JavaScript 中的 new Date() 减去 1 天?

Phi*_*ath 3 javascript date

我需要将字符串转换为日期对象。

日期字符串以以下格式传递:

“2015-01-28T00:00:00”

当我创建新日期时,我得到前一个日期:

Entered: new Date("2015-01-28T00:00:00")
Run Code Online (Sandbox Code Playgroud)

Result: Tue Jan 27 2015 17:00:00 GMT-0700 (Mountain Standard Time)

有谁知道为什么会发生这种情况?

nan*_*doj 5

当您输入以下内容时:

 new Date("2015-01-28T00:00:00");
 // Result: Tue Jan 27 2015 17:00:00 GMT-0700 (Mountain Standard Time)
Run Code Online (Sandbox Code Playgroud)

浏览器假定您提供的日期采用 GMT 时区。因此它会自动将给定日期转换为您本地的日期。

为了防止将来出现问题,通知浏览器您正在使用的时区始终是一个好主意:

 new Date("2015-01-28T00:00:00-07:00");
 // Result: Tue Jan 28 2015 00:00:00 GMT-0700 (Mountain Standard Time)
Run Code Online (Sandbox Code Playgroud)