为什么 new Date() 在 Javascript 中减去 1 天?
Why is new Date() subtracting 1 day in Javascript?
我需要将字符串转换为日期对象。
日期字符串按以下格式传送:
"2015-01-28T00:00:00"
当我创建一个新日期时,我得到了之前的日期:
Entered: new Date("2015-01-28T00:00:00")
Result: Tue Jan 27 2015 17:00:00 GMT-0700 (Mountain Standard Time)
有人知道为什么会这样吗?
实际上,您没有得到之前的日期。 . .你得到那个日期,由时区差异抵消。
Tue Jan 27 2015 17:00:00
(山区时间)+ 7 小时(时差)= 2015-01-28T00:00:00
(格林威治标准时间)
或者,在英语中,当英格兰格林威治 12:00 午夜时,科罗拉多州丹佛是前一天的 5:00 下午。 ;)
正确date/time,只是在不同的时区。
当您输入以下内容时:
new Date("2015-01-28T00:00:00");
// Result: Tue Jan 27 2015 17:00:00 GMT-0700 (Mountain Standard Time)
浏览器假定您提供的日期采用 GMT 时区。所以它会自动将给定日期转换为您当地的日期。
最好将您正在使用的时区告知浏览器,以防止将来出现问题:
new Date("2015-01-28T00:00:00-07:00");
// Result: Tue Jan 28 2015 00:00:00 GMT-0700 (Mountain Standard Time)
我需要将字符串转换为日期对象。
日期字符串按以下格式传送:
"2015-01-28T00:00:00"
当我创建一个新日期时,我得到了之前的日期:
Entered: new Date("2015-01-28T00:00:00")
Result: Tue Jan 27 2015 17:00:00 GMT-0700 (Mountain Standard Time)
有人知道为什么会这样吗?
实际上,您没有得到之前的日期。 . .你得到那个日期,由时区差异抵消。
Tue Jan 27 2015 17:00:00
(山区时间)+ 7 小时(时差)= 2015-01-28T00:00:00
(格林威治标准时间)
或者,在英语中,当英格兰格林威治 12:00 午夜时,科罗拉多州丹佛是前一天的 5:00 下午。 ;)
正确date/time,只是在不同的时区。
当您输入以下内容时:
new Date("2015-01-28T00:00:00");
// Result: Tue Jan 27 2015 17:00:00 GMT-0700 (Mountain Standard Time)
浏览器假定您提供的日期采用 GMT 时区。所以它会自动将给定日期转换为您当地的日期。
最好将您正在使用的时区告知浏览器,以防止将来出现问题:
new Date("2015-01-28T00:00:00-07:00");
// Result: Tue Jan 28 2015 00:00:00 GMT-0700 (Mountain Standard Time)