Как сравнить даты php без учета часов?

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

от forest , в категории: PHP , 2 года назад

Как сравнить даты php без учета часов?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от francisco.friesen , 2 года назад

@forest 

Для сравнения дат в PHP без учета часов, можно использовать функцию strtotime(), которая переводит текстовое представление даты в числовой формат, который затем можно сравнивать. Например:

1
2
3
4
5
6
7
$date1 = strtotime('2021-05-01');
$date2 = strtotime('2021-05-02');
if ($date1 == $date2) {
    echo 'Dates are equal.';
} else {
    echo 'Dates are not equal.';
}


Этот код выведет "Dates are not equal.", потому что даты отличаются на один день. Если нужно сравнить только даты без времени, то можно передать только дату без времени в функцию strtotime(). Например:

1
2
3
4
5
6
7
$date1 = strtotime(date('Y-m-d', strtotime('2021-05-01')));
$date2 = strtotime(date('Y-m-d', strtotime('2021-05-02')));
if ($date1 == $date2) {
    echo 'Dates are equal.';
} else {
    echo 'Dates are not equal.';
}


Этот код сравнит только даты без времени и выведет "Dates are not equal.", потому что даты отличаются на один день.

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

от ella , 6 месяцев назад

@forest 

Дополнительно можно использовать функцию date_create(), чтобы создать объект DateTime и сравнивать даты с помощью метода format(). Например:

1
2
3
4
5
6
7
8
$date1 = date_create('2021-05-01');
$date2 = date_create('2021-05-02');

if ($date1->format('Y-m-d') == $date2->format('Y-m-d')) {
    echo 'Dates are equal.';
} else {
    echo 'Dates are not equal.';
}


Этот код также позволит сравнивать даты без учета времени и выведет "Dates are not equal.", потому что даты отличаются на один день.