Проблема с date_diff в PHP - PullRequest
       19

Проблема с date_diff в PHP

0 голосов
/ 05 марта 2020

Я хочу проверить, что срок действия истек раньше месяца или нет, для этого я использую код ниже

$expire_date = '2021-01-14 04:59:59';
date_default_timezone_set("Asia/Kolkata");

$date1 = new DateTime(date('Y-m-d H:i:s'));
$date2 = new DateTime($expire_date);
$interval = $date1->diff($date2);

echo "difference " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days ".PHP_EOL; die(); // difference 0 years, 10 months, 8 days

if($interval->m > 1 && $interval->y <= 0){
    $status = "Yes"; // for expired
}else{
    $status = "No"; // not expired
}

, в этом случае он показывает неверные данные, так как я могу найти дату истечения срока до одного месяца с текущей даты в PHP

1 Ответ

2 голосов
/ 05 марта 2020

Один из способов сделать это - сгенерировать дату, которая будет через месяц, и сравнить дату истечения с ней. Если оно меньше, срок действия истекает в течение одного месяца:

$now = new DateTime();
$now->modify('+1 month');
$date2 = new DateTime($expire_date);

if ($date2 < $now) {
    echo "expiry is in less than 1 month\n";
}
else {
    echo "expiry is more than 1 month away\n";
}
...