Javascript 为什么Chrome、Safari和Firefox中的getTimezoneOffset()和ToLocalString()都假设新加坡在时区GMT+;7.30?
只是一些背景:我在OSX10.9.5上,我的时区设置为新加坡标准时间(GMT+8-我们这里没有夏令时,我相信我们过去也没有夏令时,因为新加坡就在赤道附近,所以白天的光线几乎没有季节性差异) 当我在Firefox控制台上尝试下面的javascript时,我得到的是:Javascript 为什么Chrome、Safari和Firefox中的getTimezoneOffset()和ToLocalString()都假设新加坡在时区GMT+;7.30?,javascript,google-chrome,firefox,safari,timezone,Javascript,Google Chrome,Firefox,Safari,Timezone,只是一些背景:我在OSX10.9.5上,我的时区设置为新加坡标准时间(GMT+8-我们这里没有夏令时,我相信我们过去也没有夏令时,因为新加坡就在赤道附近,所以白天的光线几乎没有季节性差异) 当我在Firefox控制台上尝试下面的javascript时,我得到的是: > new Date(0).toLocaleString() < "01/01/1970 7:30:00 am" > new Date(0).getTimezoneOffset() < -450 >新日期(0
> new Date(0).toLocaleString()
< "01/01/1970 7:30:00 am"
> new Date(0).getTimezoneOffset()
< -450
>新日期(0)。toLocaleString()
<“1970年1月1日上午7:30:00”
>新日期(0)。getTimezoneOffset()
< -450
Firefox似乎把我的时区错当成了GMT+7.30
当我在Safari和Chrome控制台中尝试相同的东西时,我得到的是(两者都是):
>新日期(0)。toLocaleString()
<“1970年1月1日格林尼治标准时间上午7:30:00+7:30”
>新日期(0)。getTimezoneOffset()
< -480
同样,Safari和Chrome中的toLocaleString()
似乎将时区误认为GMT+7.30;但是,getTimezoneOffset()
正确地实现了这一点
这些行为是分别在Firefox、Safari和Chrome中设计的(即它们背后有原因),还是仅仅是bug?日期是用
0
构建的,因此在1970
中生成日期,并且:
新加坡标准时间格林尼治标准时间的时间偏移量:UTC+07:30 使用期限:1945年9月12日至1981年12月31日 因此字符串表示法是正确的 至于
getTimezoneOffset
差异,我认为Firefox使用了正确的行为;见(铬)
> new Date(0).toLocaleString()
< "1 January, 1970 7:30:00 am GMT+7:30"
> new Date(0).getTimezoneOffset()
< -480