PHP 中 date_diff 的问题
Issue with date_diff in PHP
我想检查过期日期是否在一个月之前,因为我使用了下面的代码
$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个月内到期:
$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";
}
我想检查过期日期是否在一个月之前,因为我使用了下面的代码
$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个月内到期:
$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";
}