Javascript new Date().getTimezoneOffset()和new Date(string.getTimezoneOffset()之间有什么区别?
我最近注意到,这两个值在某些日期是不同的 例如,对于Javascript new Date().getTimezoneOffset()和new Date(string.getTimezoneOffset()之间有什么区别?,javascript,date,timezone,timezone-offset,Javascript,Date,Timezone,Timezone Offset,我最近注意到,这两个值在某些日期是不同的 例如,对于04/01/2020,两者的输出相同,但对于03/01/2020则不同 console.log( 新日期(“2020/03/01”)。getTimezoneOffset(),/-210 新日期().getTimezoneOffset(),//-270 ); console.log( 新日期(“2020/04/01”)。getTimezoneOffset(),/-270 新日期().getTimezoneOffset(),//-270 ); 我
04/01/2020
,两者的输出相同,但对于03/01/2020
则不同
console.log(
新日期(“2020/03/01”)。getTimezoneOffset(),/-210
新日期().getTimezoneOffset(),//-270
);
console.log(
新日期(“2020/04/01”)。getTimezoneOffset(),/-270
新日期().getTimezoneOffset(),//-270
);
我在今年的所有月份都做了这个测试,结果是:
->不同的2020/01/01
->不同2020/02/01
->不同2020/03/01
->相同2020/04/01
->相同2020/05/01
->相同2020/06/01
->相同2020/07/01
->相同2020/08/01
->相同2020/09/01
->不同2020/10/01
->不同2020/11/01
->不同2020/12/01
getTimezoneOffset
返回本地时区相对于UTC的偏移量,该偏移量应用于调用它的日期
对象实例所表示的时间时刻
- 如果您在
上调用它,您将请求当前偏移量,因为默认构造函数将new Date()
对象的时间戳设置为当前值,这也是由Date
给出的Date.now()
- 如果您在
上调用它,您将请求应用于该值所表示的时刻的偏移量新日期(值)
getTimezoneOffset
请求与UTC的偏移量时,有必要知道您询问的时间点
您可以在中标题为“时区!=偏移量”的部分中了解更多有关这方面的信息
还有一件事-您为字符串(“2020/03/01”)提供的格式是非标准的。给定的JavaScript引擎可能支持它,也可能不支持它,但它不是规范的一部分。相反,您应该使用
“2020-03-01”
(如果您是指该日期的午夜UTC),或者“2020-03-01T00:00:00”
(如果您是指该日期的午夜本地时间)。可以是。一个返回当前本地偏移量,另一个返回解析字符串的偏移量,这可能是无效或意外的日期或主机系统的设置指示不同偏移量的时间。