Once in a while, it happens, that you need to build a payment form with credit card expiration year as a select input.
With CakePHP’s form helper it’s pretty easy, but what’s even nicer is that you don’t have to hard-code any values for the actual years (and then have to remember to update them as the time goes on).
With the little snippet below we build a select input which starts and defaults to the current year and goes up to seven years ahead.
(So at the time of writing the select input range is: 2010 – 2017)
$this->Form->input('card_expiration_year', array(
'type' => 'date',
'maxYear' => date('Y', strtotime('+ 7 years')),
'minYear' => date('Y'),
'dateFormat' => 'Y',
'default' => date('Y')));
p.s. Why seven years? (Not sure, just like the number).