Próbuję napisać skrypt, który sprawdzi, czy aktualna data / godzina minęła 05/15/2010 at 4PM
Jak mogę użyć funkcji date () w PHP do wykonania tego sprawdzenia?
Od PHP> = 5.2.2 możesz używać DateTime
klasy jako takiej:
if (new DateTime() > new DateTime("2010-05-15 16:00:00")) {
# current time is greater than 2010-05-15 16:00:00
# in other words, 2010-05-15 16:00:00 has passed
}
Ciąg przekazany do konstruktora DateTime jest analizowany zgodnie z tymi regułami .
Zwróć uwagę, że możliwe jest również użycie time
i strtotime
funkcje. Zobacz oryginalną odpowiedź .
new DateTime('2010-05-15')
tylko przykład, może to być dowolny obiekt DateTime zainicjowany wcześniej.$object
jest to obiekt DateTime, użyłemif (new DateTime() > $object) {}
i działa nieprawidłowo. Aleif (time() > $bject->getTimeStamp()) {}
działa poprawnie. @Salman AIstnieje również klasa DateTime, która implementuje funkcję dla operatorów porównania.
źródło
Sprawdź
strtotime
funkcję PHP, aby przekonwertować ustawioną datę / godzinę na znacznik czasu: http://php.net/manual/en/function.strtotime.phpJeśli
strtotime
nie możesz poprawnie obsłużyć formatu daty / godziny („16:00” prawdopodobnie będzie działać, ale nie „o 16:00”), musisz użyć funkcji ciągów, np.substr
Do przeanalizowania / poprawienia formatu i pobrania znacznika czasu przez inna funkcja, npmktime
.Następnie porównaj wynikowy znacznik czasu z bieżącą datą / godziną (
if ($calulated_timestamp > time()) { /* date in the future */ }
), aby sprawdzić, czy ustawiona data / godzina przypada w przeszłości czy w przyszłości.Proponuję przeczytać dokumentację PHP na temat funkcji daty / czasu i wrócić tutaj z częścią kodu źródłowego, gdy utkniesz.
źródło
źródło
$myDate
, jak będzie równestring (0) ""
.