2010-08-25 8 views
10

pracuję z datami w RSS, ale znajduję różne wyniki przy użyciu kodu poniżej w IE, Chrome i Firefox:problem z formatów daty w JavaScript z różnymi przeglądarkami

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

Firefox jest zadowolony z to, ale Chrome i IE zwracają nieprawidłową datę.

pomyślałem, że spróbować wymienić T i Z następująco:

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

Tym razem Chrome jest zadowolony z tego, ale Firefox i IE powrót Nieprawidłowa data.

Jakieś pomysły, co zrobić, aby uzyskać obiekt daty we wszystkich przeglądarkach w tym formacie ?!

Dziękujemy, Tim

Odpowiedz

23

ta działa we wszystkich przeglądarkach na moim polu - spróbuj w konsoli:

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

tak

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

IE8, FF3.6, Safari4, Chrome

+1

Masz rację, to działa i jest to lepsze rozwiązanie niż moje. – NicolasT

+0

Wielkie dzięki! Przetestowałem i pracowałem dla mnie w IE, FF, Chrome i Operze! – TimS

+0

Jak zrobić to działa na FF ze strefą czasową? Ponieważ ta "nowa data" ("2001-01-01T12: 00: 00 + 1000". Miejsce (/ \ -/g, "\ /"). Replace (/ [T | Z]/g, "')) return Nieprawidłowa data w FF, ale działa w IE/Chrome –

1

można spróbować:

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

To znaczy:

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

To znaczy, new Date (2001,0,1,12,0,0) od JS miesięcy zacząć 0 – mplungjan

+0

będę zmieniać, masz rację – NicolasT

+0

Bądź ostrożny z wiodących 0s. 08 i 09 są niepoprawnymi numerami ósemkowymi – mplungjan

3

Można również spróbować użyć Date.js - open source biblioteki javascript data manipulacja.

+0

Doskonała propozycja! Dzięki – TimS

+0

Również chwile (www.momentjs.com) wyolbrzymiają rozbieżności w przeglądarkach. – Quango

3

To działa na wszystkich głównych 5 przeglądarek i powoduje, że wszystkie przeglądarki rozpoznać czas jako GMT/UTC zamiast czasu lokalnego (przyrostek Z oznacza czas jest UTC):

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

Dziękuję mplungjan dla jego odpowiedzi.

Powiązane problemy