2012-03-28 1 views
5

Ich versuche, ein neues Date-Objekt aus Zeichenfolge zu erstellen, wie folgt:Javascript neues Date-Objekt von String, unterschiedliche Ergebnisse auf IE und FF

var myDate= new Date("1985-01-01T00:00:00.000-06:00"); 

Auf FireFox, es alarmiert das folgende

Di 1. Januar 1985 00:00:00 GMT-0600 (Central Standard Time)

Auf IE8, es alarmiert die folgenden

NaN

Warum IE wirkt auf diese Weise nach oben?

+0

möglich Duplikat [Javascript Daten in IE, NAN - firefox & Chrom ok] (http://stackoverflow.com/questions/2182246/javascript-dates-in-ie-nan-firefox-chrome-ok) –

+1

Weil IE8 dieses Format nicht unterstützt. So einfach ist das. – BalusC

+0

Hallo BALUSC, Was ist die einfachste Möglichkeit, ein Datum mit String für IE zu erstellen? – user1195192

Antwort

5

Mit Blick auf das documetation das richtige Format ist folgende:

new Date(year, month, day [, hour, minute, second, millisecond ]) 

Also, wenn Sie den folgenden Code ausführen es in allen Browsern in Ordnung sein wird:

var myDate= new Date(1985, 01, 01 , 00, 06, 00, 0000000000); 
myDate // you get the right date in all browsers IE8/7 included 
+0

Dies wird nicht richtig Datum, cos ie8 Count Monat von '0' nicht '1', so 'neues Datum (1985, 01, 01, 00, 06, 00, 0000000000)' erhalten Feb nicht Jun, müssen Sie verringern 1 wenn Sie den Parameter für den letzten Monat eingegeben haben –

2

Versuchen Sie moment.js für alle Ihre JS Date Leiden.

+0

Können Sie ein Codebeispiel geben, wie moment.js verwendet werden kann, um die Frage zu beantworten? – JustinStolle

+0

@JustinStolle var myDate = Moment ('1985-01-01T00: 00: 00.000-06: 00'); – dontGoPlastic

0

Das Format von nicht unterstützt wird IE. Vielleicht könnten Sie versuchen setUTCHours mit:

var rawdate = new Date("1985/01/01 00:00:00 GMT"); 
console.log(rawdate); 
    //=> in my timezone: Tue Jan 1 01:00:00 UTC+0100 1985 
console.log(rawdate.setUTCHours(-6)); 
    //=> in my timezone that results in: Mon Dec 31 19:00:00 UTC+0100 1984 

Vielleicht meinen Sie (Arbeiten in IE, nicht in anderen Browsern)?

var rawdate = new Date("1985/01/01 00:00:00 GMT-6"); 
    //=> Tue Jan 1 07:00:00 UTC+0100 1985 
Verwandte Themen