Проблема с форматами дат в 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 возвращают недопустимую дату.

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

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

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

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

Я благодарю mplungjan за его ответ.

Ответ 4

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

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

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

new Date(year,month,day,hour,minutes,seconds)