Я пытаюсь записать сценарий, который проверит, проходит ли текущая дата / время 05/15/2010 at 4PM
Как я могу использовать дату PHP () функция для выполнения этой проверки?
Начиная с 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
. См. Исходный ответ .
Есть также класс 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';
}
Проверьте функцию PHP strtotime
, чтобы преобразовать установленную дату / время в метку времени: http://php.net/manual/en/function.strtotime.php
If strtotime
не может правильно обрабатывать ваш формат даты / времени («16:00 PM», вероятно, будет работать, но не «at 4PM»), вам необходимо использовать строковые функции, например substr
для анализа / исправления вашего формата и получения метки времени с помощью другой функции, например mktime
.
Затем сравните полученную метку времени с текущей датой / временем ( if ($ calulated_timestamp> time ()) {/ * дата в будущем * /}
), чтобы увидеть, соответствует ли установленная дата / время в прошлом или будущем.
Я предлагаю прочитать PHP-документ о функциях даты / времени и вернуться сюда с некоторыми исходными кодами, если вы застряли.