Angular js - isDate() funktioniert nicht
Im Versuch überprüfen, ob ein Wert ein Datum ist so:
var input = "2014-04-01T15:22:30.000Z";
var dateTime = {
year: $filter('date')(input,'yyyy'),
day: $filter('date')(input,'EEE'),
dayNum: $filter('date')(input,'d'),
month: $filter('date')(input,'MMM'),
hours:$filter('date')(input,'H'),
mins: $filter('date')(input,'m'),
seconds:$filter('date')(input,'ss')
};
if(angular.isDate(dateTime.year+' '+dateTime.month+' '+dateTime.dayNum)) {
//always false
}
warum ist immer falsch?
Jahr,Monat etc Stücke sind korrekt gefiltert :/
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die folgende Anweisung ist immer false, vielleicht ist Ihre Vermutung darüber, wie isDate funktioniert nicht korrekt ist?
Hier ist die source-code für die isDate-Funktion. Sie werden sehen, dass es prüft, ob der angegebene Wert ist ein javascript-Date-Objekt.
Fragen Sie sich vielleicht, warum angular ermöglicht es Ihnen, Folgendes zu tun:
Ist es, weil die Datum filter tatsächlich wandelt Ihre Eingabe in ein Datum vor der Rückkehr eine formatierte Kopie. So, mit dem Datum filtern, es lässt Sie übergeben einen string, aber der isDate-Funktion erfordert ein Date-Objekt.
dateTime.year+' '+dateTime.month+' '+dateTime.dayNum
ist ein string, kein Datum-Objekt.