第一次嘗試是在IE 9控制檯:Chrome不JavaScript中返回正確小時
new Date('2013-10-24T07:32:53')
Thu Oct 24 07:32:53 UTC+0200 2013
收益預期
下一頁嘗試是在Firefox 24控制檯:
new Date('2013-10-24T07:32:53')
Date {Thu Oct 24 2013 07:32:53 GMT+0200 (Central Europe Standard Time)}
然後我進入Chrome 30控制檯:
new Date('2013-10-24T07:32:53')
Thu Oct 24 2013 09:32:53 GMT+0200 (Central Europe Daylight Time)
但是時間是這裏,它應該是。
這是鉻的錯誤還是我在這裏做錯了什麼?
我不能使用除了這個'2013-10-24T07:32:53'之外的任何其他格式,我從C#中獲取JSON。 我需要得到這個時間戳的小時,getHours
我在Chrome中獲得incorect值。
解決方案:
var inputHour = input.split('T')[1];
inputHour = inputHour.substring(0, 2);
Chrome似乎希望您在格林威治標準時間通過它,並將其轉換爲當地時間。其他瀏覽器正在將您傳遞的字符串解釋爲當地時間。我不確定哪個是正確的,或者它是否是規範的一部分。 –
@ MikeEdwards-ECMA-262 ed 5僅指定一個字符串:[ISO 9601的一個版本,即UTC](http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15) 。如果省略了時區指示符(Z),那麼您又回到了與實現相關的實現(並且IE 8和更低版本無法正確解析ISO字符串)。 – RobG
@ Rumplin - 在符合ES5標準的瀏覽器的末端放置一個「Z」,它仍然會在IE 8及更低版本中失敗。 – RobG