Zastanawiam się, jak mogę porównać datę z następującym kodem:
var today = new Date();
Generuje bieżący dzień tak:
Wed Feb 24 2016 12:02:34 GMT+0000 (GMT Standard Time)
Jeśli jednak mam zmienną zawierającą taki ciąg znaków:
var end = "Tue Mar 1 2016 00.00.00 GMT+0000 (GMT Standard Time)";
Nie jestem w stanie porównać tych dwóch zmiennych w instrukcji if przy użyciu operatora większego niż, ponieważ end
zmienna jest ciągiem.
Zastanawiam się więc, jak mogę porównać ustawioną datę w zmiennej z moją zmienną dzisiaj?
Dzięki, Nick
Odpowiedzi:
1 dla odpowiedzi № 1Możesz użyć znak czasu daty zamiast reprezentacji ciągu.
var today = new Date();
console.log(today.getTime());
Jest to liczba całkowita i możesz porównać dwa z nich. Pamiętaj, że jest to znacznik czasu wyrażony w milisekundach, a nie sekund, jeśli chcesz porównać go ze znacznikami czasu z innych źródeł.
Uwaga: Istnieje również opcja analizy składniowej ciągu reprezentującego obiekt Time to Date, ale zależy to w dużej mierze od formatu, w jakim napisano ciąg (i ewentualnie klienta JS) i nie zawsze może działać. Polecam pracuj tylko z numerycznymi znacznikami czasu, jeśli planujesz porównywać czasy.
1 dla odpowiedzi nr 2
Możesz utworzyć nowy obiekt daty z zapisaną datą i porównać je.
var today = new Date();
//Edited date slightly to make it fit javascript date format
var end = new Date("Thu Mar 01 2001 00:00:00 GMT+0000 (GMT)");
Na przykład
if(today > end){
//do something
}