Я работаю с датами в 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.
Есть идеи, что мне делать, чтобы получить объект даты во всех браузерах с этим форматом ?!
Большое спасибо, Тим
Это работает во всех браузерах на моем компьютере - попробуйте в консоли:
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
Можете попробовать:
new Date(2001,0,1,12,0,0)
Это означает:
new Date(year,month,day,hour,minutes,seconds)
Вы также можете попробовать использовать Date.js — библиотеку манипулирования датами с открытым исходным кодом на JavaScript.
Это работает во всех 5 основных браузерах и заставляет все браузеры распознавать время как GMT/UTC, а не местное время (суффикс Z означает, что время UTC):
new Date('2001-01-01T12:00:00Z'.replace(/\-/g,'\/').replace(/T/,' ').replace(/Z/,' -0'))
I спасибо mplungjan за его ответ.