Odpowiedzi:
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łem if (new DateTime() > $object) {}
i działa nieprawidłowo. Ale if (time() > $bject->getTimeStamp()) {}
działa poprawnie. @Salman A
Istnieje również klasa DateTime, która implementuje funkcję dla operatorów porównania.
// $now = new DateTime();
$dtA = new DateTime('05/14/2010 3:00PM');
$dtB = new DateTime('05/14/2010 4:00PM');
if ( $dtA > $dtB ) {
echo 'dtA > dtB';
}
else {
echo 'dtA <= dtB';
}
Sprawdź strtotime
funkcję PHP, aby przekonwertować ustawioną datę / godzinę na znacznik czasu: http://php.net/manual/en/function.strtotime.php
Jeś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, np mktime
.
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.
date_default_timezone_set('Asia/Kolkata');
$curDateTime = date("Y-m-d H:i:s");
$myDate = date("Y-m-d H:i:s", strtotime("2018-06-26 16:15:33"));
if($myDate < $curDateTime){
echo "active";exit;
}else{
echo "inactive";exit;
}
$myDate
, jak będzie równe string (0) ""
.