Validierung eines ISO 8601-Datums mit moment.js

7

Ich versuche, ein ISO 8601-Datum in Javascript mit moment.js zu validieren

%Vor%

Es gibt false zurück. Wo gehe ich falsch? Ist das Datumstypformat falsch?

Version: Moment 2.5.1

    
user1184100 04.03.2014, 06:27
quelle

4 Antworten

8

Nicht sicher, warum Praveens Beispiel in jsfiddle funktioniert, aber der Grund, warum Ihr Beispiel nicht funktioniert, ist, weil das Format nicht YYYY-MM-DD ist. Es beinhaltet auch die Zeit, also gilt es als ungültig. Wenn Sie es ohne die Uhrzeit im Datum versuchen, wird true zurückgegeben.

Versuchen Sie es stattdessen:
moment("2011-10-10T14:48:00", "YYYY-MM-DDTHH:mm:ss", true).isValid()

    
antimatter 04.03.2014, 06:39
quelle
24

Um zu vermeiden, String-Muster als zweites Argument zu verwenden, können Sie einfach Folgendes aufrufen:

%Vor%     
wawka 16.10.2016 11:50
quelle
3

Okay, ich habe es gefunden.

Gemäß der Dokumentation

  

Ab Version 2.3.0 können Sie für das letzte Argument ein boolean angeben   um den Moment strikt zu analysieren. Striktes Parsen erfordert, dass der   Format und Eingabe stimmen genau überein

weil Sie strict operation verwenden, gibt es false zurück. Um diese Verwendung unter dem Code zu umgehen:

%Vor%

demo1

Wenn Sie die strict parsing entfernen ,

%Vor%

demo2

    
Praveen 04.03.2014 06:42
quelle
1

Verwenden Sie dies, um einen Teil Ihres Datums abzustimmen

%Vor%

Wenn Sie genaues Format haben wollen, dann

%Vor%     
Cris 04.03.2014 06:46
quelle

Tags und Links