2016-10-04 5 views
0

Если у меня есть DateTime интервала, например:PHP - Проверьте, если данная дата подходит данный интервал

$slot_interval = DateInterval::createFromDatestring('30 minutes'); 

И еще один DateTime объекта с любой датой, как я могу проверить, что объект соответствует интервалу? Итак, если интервал составляет 30 минут, то даты, такие как 2016-10-04 12:00:00 и 2016-10-04 14:30:00, будут действительны, а 2016-10-04 12:05:10 больше не действителен?

Я не мог найти много ресурсов для этого, кроме некоторых решений для MySQL и/или преобразования дат в временные метки unix, выполнения деления в секундах и проверки остатка. Интересно, есть ли лучшее и лучшее решение для этого?

Спасибо!

ответ

1

Try:

$minutes = date('i',strtotime($inputDate); 
$seconds = date('s',strtotime($inputDate); 
if((($minutes == '00') || ($minutes == '30')) && ($seconds == '00')){ 
    // do stuff 
} 
+0

Да я мог бы проверить, как это, но '$ slot_interval' может быть что-то вроде' 1 hour', '2 hours',' 15, 'минут 30 seconds' и т.д. ., поэтому мне было интересно, есть ли решение использовать фактический объект 'DateInterval' для вычисления – Giedrius

+0

@Giedrius так' $ slot_interval' в не дату? Не могли бы вы разместить свой полный код. Не совсем уверен, что вы здесь делаете. – Austin

+0

'$ slot_interval' - это объект' DateInterval', как указано выше. То, что я пытаюсь достичь, - это проверить объект 'DateTime' (а не' $ slot_interval'), чтобы проверить, соответствует ли он интервалу, определенному '$ slot_interval' – Giedrius

Смежные вопросы