Trick do manipulowania i porównywanie dat i czasu w PHP jest do przechowywania wartości daty/godziny w zmiennej całkowitej i używać (funkcji) mktime() Data() i strtotime. Całkowita liczba dni i godzin jest to liczba sekund od północy, 1970-sty-1, nazywana "epoką". Gdy twoja data/godzina jest w postaci całkowitej, będziesz w stanie efektywnie porównać ją z innymi datami, które również są w postaci całkowitej.
Oczywiście, ponieważ najprawdopodobniej będziesz otrzymywać wartości daty/godziny od żądań stron i zapytań o bazę danych, musisz przekonwertować ciąg daty/czasu na liczbę całkowitą, zanim będziesz mógł dokonać porównania lub arytmetycznej.
Zakładając, że masz pewność, że zmienne $ resttimefrom i $ resttimeto zawierają odpowiednio sformatowany czas, możesz użyć funkcji strtotime(), aby przekształcić swój ciąg w liczbę całkowitą. strtotime() pobiera ciąg znaków sformatowany jako data i konwertuje go na liczbę sekund od epoki.
$time_from = strtotime($resttimefrom);
$time_to = strtotime($resttimeto);
Nota boczna: strtotime() zawsze zwraca pełną datę w postaci liczby całkowitej. Jeśli twój ciąg nie ma daty, tylko czas, strtotime() zwraca dzisiejszą datę wraz z czasem podanym w ciągu.Nie jest to dla ciebie ważne, ponieważ dwie daty zwrócone przez strtotime() będą miały tę samą datę, a porównanie dwóch zmiennych będzie miało pożądany efekt porównania dwóch czasów, gdy daty znoszą się nawzajem.
Porównując dwie liczby całkowite należy pamiętać, że im wcześniej data/godzina, tym mniejsza będzie jej wartość całkowita. Więc jeśli chcesz zobaczyć, czy $ time_from jest wcześniejsza niż $ time_to, to masz to:
if ($time_from < $time_to)
{
// $time_from is ealier than $time_to
}
Teraz porównać datę/czas z bieżąca data systemowa/czas, wystarczy użyć mktime() bez parametrów do reprezentowania aktualną datę/czas:
if ($time_from < mktime())
{
// $time_from is in the past
}
Dzięki jego prosta logika! – Rajasekar
możliwy duplikat [PHP - Porównaj datę] (http://stackoverflow.com/questions/2113940/php-compare-date) – Kuf
To dlatego, że $ resttimefrom i $ resttimeto nie są zdefiniowane – Black