Проблема с форматами даты в JavaScript в разных браузерах

Я работаю с датами в RSS-канале, но при использовании приведенного ниже кода в IE, Chrome и Firefox обнаружил разные результаты:

new Date('2001-01-01T12:00:00Z')

Firefox доволен этим, но Chrome и IE возвращают неверную дату.

Я подумал, что попробую заменить T и Z следующим образом:

new Date('2001-01-01 12:00:00')

На этот раз Chrome доволен этим, но Firefox и IE возвращают Invalid Date.

Есть идеи, что мне делать, чтобы получить объект даты во всех браузерах с этим форматом ?!

Большое спасибо, Тим

10
задан TimS 25 August 2010 в 13:10
поделиться

4 ответа

Это работает во всех браузерах на моем компьютере - попробуйте в консоли:

alert(new Date('2001/01/31 12:00:00'))

так

new Date('2001-01-01T12:00:00Z'.replace(/\-/g,'\/').replace(/[T|Z]/g,' '))

IE8, FF3.6, Safari4, Chrome

23
ответ дан 3 December 2019 в 14:42
поделиться

Можете попробовать:

new Date(2001,0,1,12,0,0)

Это означает:

new Date(year,month,day,hour,minutes,seconds) 
3
ответ дан 3 December 2019 в 14:42
поделиться

Вы также можете попробовать использовать Date.js — библиотеку манипулирования датами с открытым исходным кодом на JavaScript.

3
ответ дан 3 December 2019 в 14:42
поделиться

Это работает во всех 5 основных браузерах и заставляет все браузеры распознавать время как GMT/UTC, а не местное время (суффикс Z означает, что время UTC):

new Date('2001-01-01T12:00:00Z'.replace(/\-/g,'\/').replace(/T/,' ').replace(/Z/,' -0'))

I спасибо mplungjan за его ответ.

3
ответ дан 3 December 2019 в 14:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: