Ответы:
Начиная с PHP> = 5.2.2, вы можете использовать DateTime
класс как таковой:
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
}
Строка, переданная конструктору DateTime, анализируется в соответствии с этими правилами .
Обратите внимание, что также можно использовать time
и strtotime
functions. См. Исходный ответ .
new DateTime('2010-05-15')
просто пример, это может быть любой объект DateTime, который вы инициализировали ранее.
$object
что это объект DateTime, я использовал, if (new DateTime() > $object) {}
и он работает неправильно. Но if (time() > $bject->getTimeStamp()) {}
работает правильно. @Salman A
Также существует класс DateTime, который реализует функцию для операторов сравнения.
// $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';
}
Проверьте strtotime
функцию PHP, чтобы преобразовать установленную дату / время в метку времени: http://php.net/manual/en/function.strtotime.php
Если strtotime
вы не можете правильно обработать ваш формат даты / времени («16:00 PM», вероятно, будет работать, но не «в 4PM»), вам необходимо использовать строковые функции, например, substr
чтобы проанализировать / исправить ваш формат и получить метку времени через другая функция, например mktime
.
Затем сравните полученную метку времени с текущей датой / временем (if ($calulated_timestamp > time()) { /* date in the future */ }
), чтобы увидеть, находится ли установленная дата / время в прошлом или в будущем.
Я предлагаю прочитать PHP-документ о функциях даты / времени и вернуться сюда с некоторыми исходными кодами, когда вы застряли.
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
будет равно string (0) ""
.