ich zwei Datetime-Objekte haben:Datetime-Vergleich in ng-wenn
time1 = '2016-04-05T15:30:00';
time2 = '2016-04-05T14:48:41.7609724Z';
In meinem HTML, ich habe:
<div ng-if="time1 > time2">result</div>
. Das funktioniert gut.
Jetzt möchte ich wissen, ob time1 minus 30 Minuten still> time2. Also habe ich:
<div ng-if="time1 - 30*60*1000 > time2">result</div>
Dies funktioniert nicht.
Es ist wie ich nur das Datetime-Objekt >
oder <
direkt vergleichen kann, aber ich kann Mathe auf es nicht -
oder +
verwenden. Zur Verifizierung:
<div>{{time1 > time2}}</div>
zeigt True
.
<div>{{time1 < time2}}</div>
zeigt False
.
<div>{{time1 - time2}}</div>
zeigt NaN
. Ich erwarte, dass dies eine Zahl des Ergebnisses in Millisekunden ist.
FRAGE: Wie Mathematik auf dem Datetime zu tun mit ng-if
, z.B. Hinzufügen von Minuten zu einer DateTime, dann vergleichen Sie diese beiden DateTime.
ANMERKUNGEN: Einige mögen sagen, dass es ist, weil mein time1
und time2
unterschiedliches Format haben. Ich habe festgestellt, dass dies nicht das Problem ist. Dasselbe Problem tritt auf, wenn ich time2
in dasselbe Format wie time1
ändere.
Sie können eine Funktion für das verwenden möchten, weil Daten implizit nicht zu miliseconds konvertieren, wenn sie mit einem unären Konverter getroffen –
Die seltsame Sache ist es auf dieser Website funktioniert: http: //plnkr.co/edit/fNB11U6KmFszdV3lMAPJ?p=preview –
Ich würde vorschlagen, 'moment' zu verwenden:' moment (time1) .isAfter (time2) '. Sie können auch Minuten subtrahieren/hinzufügen, bis zu dem Datum, das Sie für passend halten, bevor die Prüfung 'isAfter/isBefore' ausgeführt wird. Siehe die Dokumentation: http://momentjs.com/docs/ – lux