Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中使用DateTime类的日期比较问题_Php_Datetime - Fatal编程技术网

PHP中使用DateTime类的日期比较问题

PHP中使用DateTime类的日期比较问题,php,datetime,Php,Datetime,我创建了一个函数来比较日期: public function checkExpiredDate($cardDate) : bool { $currentDate = new DateTime(); $creditCardDate = new DateTime("{$cardDate->card_expiryYear}-{$cardDate->card_expiryMonth}-*last day from the month*"); echo $cred

我创建了一个函数来比较日期:

public function checkExpiredDate($cardDate) : bool
{
     $currentDate = new DateTime();
     $creditCardDate = new DateTime("{$cardDate->card_expiryYear}-{$cardDate->card_expiryMonth}-*last day from the month*");
     echo $creditCardDate->format('Y-m-d'); exit();
     return $creditCardDate->getTimestamp() < $currentDate->getTimestamp() ?? true;
}
公共函数checkExpiredDate($cardDate):bool
{
$currentDate=新的日期时间();
$creditCardDate=新的日期时间(“{$cardDate->card_expiryYear}-{$cardDate->card_expiryMonth}-*从月份开始的最后一天*”;
echo$creditCardDate->格式('Y-m-d');退出();
返回$creditCardDate->getTimestamp()<$currentDate->getTimestamp()??true;
}

我只有
,没有
。我只需要使用
以及
日期时间
类将今天的日期与该日期进行比较。我该怎么做?有没有办法使用DateTime类从月份和年份中获取最后一天?如果有人使用
DateTime
,我的函数应该可以工作。

将day设置为每月的第一天,然后修改为最后一天

$creditCardDate = new DateTime("{$cardDate->card_expiryYear}-{$cardDate->card_expiryMonth}-1");
$creditCardDate->modify('last day of this month');

当然,在这里不使用
DateTime
更容易:

return $cardDate->card_expiryYear . $cardDate->card_expiryMonth <= date('Ym');


您好,是否可以选择使用date()类?如果只有月份和年份可供比较,为什么需要月的最后一天?
return sprintf('%d%02d', $cardDate->card_expiryYear, $cardDate->card_expiryMonth) <= date('Ym');
$creditCardDate->modify('last day of this month');