From 26e07ea4876cc0dedae4fae5f9c1eaea4ed91bd0 Mon Sep 17 00:00:00 2001 From: Boris Belobrad Date: Mon, 19 Nov 2018 09:51:53 -0800 Subject: [PATCH] Add static card expiration function for inline validation Added static function that can be used for an inline validation of a credit card expiration date. Also, the card should be valid through the end of the month on the card. --- CreditCardValidator.php | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/CreditCardValidator.php b/CreditCardValidator.php index 4097998..3ce7965 100644 --- a/CreditCardValidator.php +++ b/CreditCardValidator.php @@ -118,9 +118,37 @@ public function validateDate($creditCardExpiredMonth, $creditCardExpiredYear) return is_integer($creditCardExpiredMonth) && $creditCardExpiredMonth >= 1 && $creditCardExpiredMonth <= 12 && - is_integer($creditCardExpiredYear) && ($creditCardExpiredYear > $currentYear || ($creditCardExpiredYear==$currentYear && $creditCardExpiredMonth>$currentMonth) ) && $creditCardExpiredYear < $currentYear + 10 + is_integer($creditCardExpiredYear) && ($creditCardExpiredYear > $currentYear || ($creditCardExpiredYear==$currentYear && $creditCardExpiredMonth>=$currentMonth) ) && $creditCardExpiredYear < $currentYear + 10 ; } + + /** + * Validates the Credit Card expiration date + * @param $creditCardExpiredMonth + * @param $creditCardExpiredYear + * @return bool + */ + public static function validateExpirationDate($creditCardExpiredMonth, $creditCardExpiredYear) + { + $currentMonth = intval(date('n')); + $currentYear = intval(date('Y')); + if (is_scalar($creditCardExpiredMonth)) { + $creditCardExpiredMonth = intval($creditCardExpiredMonth); + } + if (is_scalar($creditCardExpiredYear)) { + $creditCardExpiredYear = intval($creditCardExpiredYear); + } + return + is_integer($creditCardExpiredMonth) && + $creditCardExpiredMonth >= 1 && + $creditCardExpiredMonth <= 12 && + is_integer($creditCardExpiredYear) && + ( + $creditCardExpiredYear > $currentYear || ( + $creditCardExpiredYear == $currentYear && $creditCardExpiredMonth >= $currentMonth) + ) && + $creditCardExpiredYear < $currentYear + 10; + } /** * Validates Credit Card holder