Как я могу проверить, проходит ли текущая дата / время дату/время набора?

Я пытаюсь записать сценарий, который проверит, проходит ли текущая дата / время 05/15/2010 at 4PM

Как я могу использовать дату PHP () функция для выполнения этой проверки?

106
задан Salman A 7 October 2015 в 07:40
поделиться

3 ответа

Начиная с 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 . См. Исходный ответ .

209
ответ дан 24 November 2019 в 03:45
поделиться

Есть также класс 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';
}
77
ответ дан 24 November 2019 в 03:45
поделиться

Проверьте функцию PHP strtotime , чтобы преобразовать установленную дату / время в метку времени: http://php.net/manual/en/function.strtotime.php

If strtotime не может правильно обрабатывать ваш формат даты / времени («16:00 PM», вероятно, будет работать, но не «at 4PM»), вам необходимо использовать строковые функции, например substr для анализа / исправления вашего формата и получения метки времени с помощью другой функции, например mktime .

Затем сравните полученную метку времени с текущей датой / временем ( if ($ calulated_timestamp> time ()) {/ * дата в будущем * /} ), чтобы увидеть, соответствует ли установленная дата / время в прошлом или будущем.

Я предлагаю прочитать PHP-документ о функциях даты / времени и вернуться сюда с некоторыми исходными кодами, если вы застряли.

6
ответ дан 24 November 2019 в 03:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: