Javascript-Datum (dateString) gibt NaN auf einem bestimmten Server und Browser zurück

8

Ich verwende den JavaScript-Konstruktor Date (String) mit dem Datumsformat "yyyy-mm-dd". Der Konstruktor funktioniert problemlos in IE 9 und Firefox, es sei denn, die App läuft auf unserer Test-VM, auf der IIS ausgeführt wird. Wenn es auf der VM ist, gibt es in IE 9 'NaN' zurück, funktioniert aber immer noch normal in Firefox.

%Vor%

Ich ging davon aus, dass der Server nichts mit clientseitigem Javascript zu tun hat. Irgendwelche Vorschläge?

    
Gagege 11.11.2011, 19:31
quelle

4 Antworten

2

Ich schlage vor, eine zuverlässigere Form der Datumsanalyse zu versuchen. Im folgenden Beispiel wird setFullYear() verwendet. Produziert IE mit dem unten stehenden Code ein anderes Ergebnis?

%Vor%

Quelle: Ссылка

    
James Hill 11.11.2011, 19:36
quelle
9

Und für diejenigen von uns, die wie wissen möchten, Bindestriche (aka Bindestriche) durch Schrägstriche zu ersetzen:

%Vor%

Das verwendet diese Funktion:

%Vor%

In meinem Fall ist es viel einfacher, Bindestriche selektiv in Schrägstriche zu konvertieren (nur dort, wo es für die Funktion Date () erforderlich ist), als das Datumsformat überall in meinem Code zu ersetzen.

Hinweis: Sie müssen wirklich eine separate 'Antwort'-Variable definieren und ihr den Wert des Ersetzungsergebnisses zuweisen. Ist dies nicht der Fall, wird die Zeichenfolge in Chrome unverändert zurückgegeben. Das ist kein großes Problem, da Chrome zunächst keine Probleme mit Bindestrich-Strings hat. Aber immer noch ...

    
Wytze 20.06.2012 13:24
quelle
8

Verwenden Sie einfach Schrägstriche statt Bindestriche, wenn Sie können.

EDIT: Erweiterte Klärung ...

Das Standardformat ISO 8601 verwendet den Bindestrich als Datumstrennzeichen. Meine Antwort bedeutet nicht, dass Sie keine Standards einhalten müssen. Sie können bei Bedarf nur Schrägstriche für den Date-Konstruktor verwenden.

    
Lee Kowalkowski 11.11.2011 20:05
quelle
3

Es liegt am Datumsformat. Aus irgendeinem Grund werden IE und Safari mit yyyy-mm-dd ausgelöscht. Verwenden Sie ein anderes Datumsformat und Sie sollten alle eingestellt sein.

Es wird hier gesprochen:
Ссылка

    
James Johnson 11.11.2011 19:49
quelle