Функция PHP для проверки времени между заданным диапазоном? - PullRequest
2 голосов
/ 16 ноября 2010

Я использую функции Date в своем проекте и хочу проверить, находится ли заданная дата-время между заданным диапазоном date-time.ie, например, если текущая дата-время 2010-11-16 12:2500:00 и хотите проверить, находится ли время между 2010-11-16 09:00:00 и 18:00:00 PM.В приведенном выше случае это правда, и если время не находится в диапазоне, он должен вернуть ложь.Есть ли встроенная функция PHP, чтобы проверить это, или нам придется написать новую функцию ??

Ответы [ 2 ]

8 голосов
/ 16 ноября 2010

Просто используйте strtotime для преобразования двух раз в метки времени Unix:

Пример функции может выглядеть следующим образом:

function dateIsBetween($from, $to, $date = 'now') {
    $date = is_int($date) ? $date : strtotime($date); // convert non timestamps
    $from = is_int($from) ? $from : strtotime($from); // ..
    $to = is_int($to) ? $to : strtotime($to);         // ..
    return ($date > $from) && ($date < $to); // extra parens for clarity
}
6 голосов
/ 22 июня 2012

Функция для проверки того, находится ли дата / время в диапазоне:

function check_date_is_within_range($start_date, $end_date, $todays_date)
{

  $start_timestamp = strtotime($start_date);
  $end_timestamp = strtotime($end_date);
  $today_timestamp = strtotime($todays_date);

  return (($today_timestamp >= $start_timestamp) && ($today_timestamp <= $end_timestamp));

}

Вызов функции с параметрами дата / время начала, дата / время окончания, сегодняшняя дата / времяНиже параметров получает функцию, чтобы проверить, если сегодняшняя дата / время между 10 утра 26 июня 2012 года и полдень в тот же день.

if(check_date_is_within_range('2012-06-26 10:00:00', '2012-06-26 12:00:00', date("Y-m-d G:i:s"))){
    echo 'In range';
} else {
    echo 'Not in range';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...