我正在尝试使用DateTime来检查信用卡的到期日期是否已过期,但我有点迷路。

我只想比较mm / yy日期。

到目前为止,这是我的代码

$expmonth = $_POST['expMonth']; //e.g 08
$expyear = $_POST['expYear']; //e.g 15

$rawExpiry = $expmonth . $expyear;

$expiryDateTime = \DateTime::createFromFormat('my', $rawExpiry);
$expiryDate = $expiryDateTime->format('m y');

$currentDateTime = new \DateTime();
$currentDate = $currentDateTime->format('m y');

if ($expiryDate < $currentDate) {
    echo 'Expired';
} else {
    echo 'Valid';
}


我觉得我快到了,但是if语句产生不正确的结果。任何帮助,将不胜感激。

最佳答案

它比您想象的要简单。日期的格式并不重要,因为PHP在内部进行比较。

$expires = \DateTime::createFromFormat('my', $_POST['expMonth'].$_POST['expYear']);
$now     = new \DateTime();

if ($expires < $now) {
    // expired
}

10-08 00:45