Доброго времени! Столкнулся с такой задачей, есть 2 переменные с датой и временем
$progresolddate = '2000-10-10 11:12:00';
$getcycle['time'] = '2000-10-10 12:12:00';
дата и время в них может быть произвольная, но вторая дата всегда больше первой (хотя бы на минуту), и надо отследить попадает ли разница во времени в какой-то из временных интервалов.
Я попробовал сделать так:
if ((substr($progresolddate, 11,5) >= '00:00' && substr($getcycle['time'], 11,5) <= '00:59') ||
(substr($progresolddate, 11,5) >= '01:00' && substr($getcycle['time'], 11,5) <= '01:59') ||
(substr($progresolddate, 11,5) >= '02:00' && substr($getcycle['time'], 11,5) <= '02:59') ||
(substr($progresolddate, 11,5) >= '03:00' && substr($getcycle['time'], 11,5) <= '03:59') ||
(substr($progresolddate, 11,5) >= '04:00' && substr($getcycle['time'], 11,5) <= '04:59') ||
(substr($progresolddate, 11,5) >= '05:00' && substr($getcycle['time'], 11,5) <= '05:59') ||
(substr($progresolddate, 11,5) >= '06:00' && substr($getcycle['time'], 11,5) <= '06:59') ||
(substr($progresolddate, 11,5) >= '07:00' && substr($getcycle['time'], 11,5) <= '07:59') ||
(substr($progresolddate, 11,5) >= '08:00' && substr($getcycle['time'], 11,5) <= '08:59') ||
(substr($progresolddate, 11,5) >= '09:00' && substr($getcycle['time'], 11,5) <= '09:59') ||
(substr($progresolddate, 11,5) >= '10:00' && substr($getcycle['time'], 11,5) <= '10:59') ||
(substr($progresolddate, 11,5) >= '11:00' && substr($getcycle['time'], 11,5) <= '11:59') ||
(substr($progresolddate, 11,5) >= '12:00' && substr($getcycle['time'], 11,5) <= '12:59') ||
(substr($progresolddate, 11,5) >= '13:00' && substr($getcycle['time'], 11,5) <= '13:59') ||
(substr($progresolddate, 11,5) >= '14:00' && substr($getcycle['time'], 11,5) <= '14:59') ||
(substr($progresolddate, 11,5) >= '15:00' && substr($getcycle['time'], 11,5) <= '15:59') ||
(substr($progresolddate, 11,5) >= '16:00' && substr($getcycle['time'], 11,5) <= '16:59') ||
(substr($progresolddate, 11,5) >= '17:00' && substr($getcycle['time'], 11,5) <= '17:59') ||
(substr($progresolddate, 11,5) >= '18:00' && substr($getcycle['time'], 11,5) <= '18:59') ||
(substr($progresolddate, 11,5) >= '19:00' && substr($getcycle['time'], 11,5) <= '19:59') ||
(substr($progresolddate, 11,5) >= '20:00' && substr($getcycle['time'], 11,5) <= '20:59') ||
(substr($progresolddate, 11,5) >= '21:00' && substr($getcycle['time'], 11,5) <= '21:59') ||
(substr($progresolddate, 11,5) >= '22:00' && substr($getcycle['time'], 11,5) <= '22:59') ||
(substr($progresolddate, 11,5) >= '23:00' && substr($getcycle['time'], 11,5) <= '23:59')) {
echo 'sd';
}
Но тут несколько проблем - во первых слишком громоздко. Я знаю, что в php есть много функций работы с датой и временем, да и этот скрипт срабатывает нормально только если разница между датами меньше часа.
Есть ли какая нибудь функция или способ сделать это более работоспособно?
$a->format('H') === $b->format('H')
Пример:
$a = '2000-10-10 11:12:00';
$b = '2000-10-10 12:12:00';
$c = '2000-10-10 12:36:00';
$a = new \DateTime($a);
$b = new \DateTime($b);
$c = new \DateTime($c);
$ab = $b->format('Y-m-d H') === $a->format('Y-m-d H');
$bc = $c->format('Y-m-d H') === $b->format('Y-m-d H'); // сравниваем без минут
var_dump($ab); // false
var_dump($bc); // true
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Создаю сайт и потребовалось создать элемент формы select который бы выводил список всех пользователей для выбораСоздавать форму мне удобнее...
Подскажите, пожалуйста, как прочитать и вывести данные из файла XML? Есть файл стандарта yandex