Как правильно складывать и сравнивать дату и время в php?

Пользователь

от greyson , в категории: PHP , 5 месяцев назад

Как правильно складывать и сравнивать дату и время в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от elissa , 5 месяцев назад

@greyson 

В PHP даты и время можно складывать и сравнивать с помощью встроенных функций и объектов, таких как DateTime и DateInterval. Вот примеры использования:

  1. Сложение даты и времени:
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. Сравнение даты и времени:
 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 (без учета времени)';
}