2010-07-16 6 views
7

Ich versuche, eine Liste von Daten zu sortieren, aber ich habe Probleme mit null Daten, die nicht konsistent behandelt werden.JavaScript Date.parse() und null Daten

Also brauche ich so etwas wie:

var date = Date.parse(dateString); 
if (!date) { 
    date = Date.MinValue; 
} 

aber ich kämpfen, um die richtige Syntax zu finden. Dank


Update: Der Fehler erwies sich als ein anderes Problem zu sein. Ich habe Datejs importiert für die Verwendung in einem anderen Teil des Projekts, so hatte ich nicht erkannt, dass Datejs eine Date.parse() Methode definiert, die die Standard-JavaScript-Methode überschrieben wurde.

Wie auch immer, es stellt sich heraus, dass Datejs einen seltsamen Bug hat, was bedeutet, dass es keine Daten behandelt, die mit "A" beginnen. Also wurden meine Nulldaten richtig bestellt, es waren nur April und August, dann wurden Daten mit ihnen vermischt.

Das Problem besteht darin, die Methode Datejs Date.parseExact zu verwenden, mit der Sie eine bestimmte Formatzeichenfolge angeben können, siehe here.

Antwort

9

parse() gibt NaN auf eine unmögliche Analyse zurück, also wie wäre es nur?

var date = Date.parse(dateString) || 0; 
4

Sie können isNaN (Datum) verwenden, um nach ungültigen Daten zu suchen. Sind Sie sicher, dass Sie "MinValue; von Datum? Ich habe die js auf Chrom und lief immer undefiniert.

+0

Persönlich wie dieser Test besser, schöner für die Lesbarkeit bei der Überprüfung 'if (! IsNaN (date))' als 'if (date! = 0)' – Keerigan

3

Wenn Sie wirklich für einen Vergleich eines gültigen JS Date-Objekt suchen (das ist" leer " oder ungesetzt aber deshalb Standardwert 1. Januar 1970) zu testen, ob es Falsey ist - können Sie:

var null_date = new Date(0); 

Dies wird ein Date-Objekt erstellen, die auf dem Minimum (nullt) Zeitstempel, von dem Date() gesetzt Beginnt zu zählen ... was einem Date-Objekt entspricht, das nie gesetzt wurde

Verwandte Themen