@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.