我正在尝试使用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
}