Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: datetime находится между указанного диапазона
Форумы портала PHP.SU » » Вопросы новичков » datetime находится между указанного диапазона

Страниц (1): [1]
 

1. Грачи прилетели - 14 Марта, 2019 - 09:39:35 - перейти к сообщению
Добрый день!

Впал в ступор, не получается результат, прошу помощи

У меня есть три datetime

PHP:
скопировать код в буфер обмена
  1.  
  2. $date_now = new DateTime(date('Y-m-d H:i:s'));
  3. $date_start = new DateTime($day_start);
  4. $date_stop = new DateTime($day_start);
  5.  


Мне надо проверить, что $date_now находится между $date_start и $date_stop

Дата стоп - всегда следующий день 09:30
Время у Дата старт 18:30

Вот и проверяю, что текущее дата/время входит или нет в диапазон с 18:30 сегодня до 09:30 завтра

Я делал так
PHP:
скопировать код в буфер обмена
  1. ($date_now>= $date_start) AND ($date_now<= $date_stop)


но что-то не то мне кажется.... помогите, как эту проверку проще сделать...
2. armancho7777777 - 14 Марта, 2019 - 09:58:13 - перейти к сообщению
Включите вывод ошибок.
Вначале своего файла добавите:


А лучше, у себя на локальном, глобально их включить в php.ini.
display_errors = On
3. Грачи прилетели - 14 Марта, 2019 - 10:20:34 - перейти к сообщению
PHP Version 5.6.30

вроде через new DateTime должно получаться сравнение, но как только перевел всё через strtotime , получилось, а с примерами выше нет. Не знаю в чём дело, ошибок не выводит.

Меня устраивает вариант сравнения через strtotime.

Спасибо!
4. Vladimir Kheifets - 14 Марта, 2019 - 13:54:27 - перейти к сообщению
Грачи прилетели пишет:
PHP Version 5.6.30

вроде через new DateTime должно получаться сравнение, но как только перевел всё через strtotime , получилось, а с примерами выше нет. Не знаю в чём дело, ошибок не выводит.

Меня устраивает вариант сравнения через strtotime.

Спасибо!

Добрый день!

DateTime это объект поэтому сравнение так не работает и выходит на фатальную ошибку.
Нужно добавить $date_start->getTimestamp() и.т.д.
Несколько вариантов с DateTime для определения $date_start и $date_stop
Дата стоп - всегда следующий день 09:30
Время у Дата старт 18:30
Спойлер (Отобразить)


Несколько вариантов c strtotime
Спойлер (Отобразить)
Удачи!

 

Powered by ExBB FM 1.0 RC1