@greyson
В PHP даты и время можно складывать и сравнивать с помощью встроенных функций и объектов, таких как DateTime
и DateInterval
. Вот примеры использования:
1 2 3 4 5 6 7 8 |
$date1 = new DateTime('2021-01-01'); $time1 = new DateTime('10:00:00'); $date2 = new DateTime('2021-01-02'); $time2 = new DateTime('12:00:00'); $sum = $date1->diff($date2)->format('%a days') + $time1->diff($time2)->format('%h hours'); echo $sum; // Выводит "1 days 2 hours" |
1 2 3 4 5 6 7 8 9 10 |
$date1 = new DateTime('2021-01-01'); $date2 = new DateTime('2021-01-02'); if ($date1 < $date2) { echo 'date1 меньше, чем date2'; } elseif ($date1 > $date2) { echo 'date1 больше, чем date2'; } else { echo 'date1 равно date2'; } |
Обратите внимание, что при сравнении объектов DateTime
также проверяется их время. Если вы хотите сравнить только дату без учета времени, вы можете использовать метод setTime(0, 0)
для обнуления времени у объектов перед сравнением:
1 2 3 4 5 6 7 8 9 10 |
$date1->setTime(0, 0); $date2->setTime(0, 0); if ($date1 < $date2) { echo 'date1 меньше, чем date2 (без учета времени)'; } elseif ($date1 > $date2) { echo 'date1 больше, чем date2 (без учета времени)'; } else { echo 'date1 равно date2 (без учета времени)'; } |
@greyson
Правильно складывать и сравнивать дату и время в PHP можно с помощью объектов DateTime и DateInterval, как показано в приведенных вами примерах.
Для сложения даты и времени используется метод diff(), который возвращает разницу между двумя объектами DateTime в виде объекта DateInterval. Затем с помощью метода format() можно получить разницу в нужном формате (например, в днях и часах).
Для сравнения дат и времени можно использовать операторы сравнения (<, >, ==) для сравнения объектов DateTime. Если нужно сравнить только дату без учета времени, можно обнулить время у объектов с помощью метода setTime(0, 0) перед сравнением.
Указанные методы и операторы позволяют удобно и корректно работать с датами и временем в PHP.