2016-03-23 14 views
0

Ich hob seltsame Frage:Wie wird ein Fehler ausgelöst, wenn ein ungültiges Datumsobjekt erstellt wird?

var d = new Date("2016--01---01"); 

ohne Fehler Objekt schaffen würde. Eigentlich ist die erste Frage - warum?

Aber dann muss ich String aus diesem Objekt erhalten - ich versuche zu

d.toString();  // 'Invalid Date' 
d.getTime();  // NaN 
d.toJSON();  // null 

Was es Möglichkeiten ist String zu erhalten oder zu überprüfen, ob es falsch ist?

+0

tun wollen prüfen, ob die bereitgestellte Zeichenfolge vaild Datum ist oder nicht gültig ist? – murli2308

+0

Möchten Sie überprüfen, ob die Zeichenfolge gültig ist, bevor Sie das 'Date()' erstellen oder dass das 'Date()' danach ungültig ist? –

+0

Ich brauche einen Fehler beim Erstellen oder tatsächlichen falschen Datum von "Date" -Objekt – alexey

Antwort

0

Sie können einfach überprüfen, es ist eine gültige Zahl, wenn zu einem umgewandelt:

var ok = !isNaN(d); 

(diese Umwandlung ist das gleiche als d.getTime() Einnahme).

Aber seien Sie gewarnt, dass ein gültiges Datum möglicherweise nicht das gewünschte Datum ist. Normalerweise verwenden Sie ein überprüftes Datumsformat. Bibliotheken wie moment.js könnten Ihnen dabei helfen.

0

eine Fabrik Typ Funktion erstellen, die gegeben einen Fehler, wenn die Zeichenfolge wirft ein ungültiges Datum erzeugt, sondern gibt das Datum, wenn es Sie

var d = createDate("2016--01---01") 

createDate = function(str) {  
    var date = new Date(str) 
    if(date instanceof Date && !isNaN(date.valueOf())) return date 
    else throw Error('invalid date') 
} 
Verwandte Themen