Creating date field with only month and year - Drupal

Sparky picture Sparky · Mar 8, 2011 · Viewed 15.1k times · Source

I am creating a credit card form in Drupal. I need a date select field where users can select their credit card expiry date, which consists of only Month and Year -No Day.

The Drupal form #type 'date' produces a date chooser, which has day-month-year option. I just need month-year. Any help?

Answer

Adam Kalsey picture Adam Kalsey · Mar 3, 2012

Using the Date API module (part of the Date module), you can do something like this....

<?php
$form['payment_expirationDate'] = array(
    '#type' => 'date_select',
    '#title' => t('Expiration Date:'),
    '#date_format' => 'm-Y',
    '#default_value' => $expirationDate,
    '#date_year_range' => '-1:+10',
    '#required' => TRUE,
    '#date_label_position' => 'within'
 ); 
?>

The date_select type will give you select box form elements for your field. And the #date_format array key allows you to use a PHP date format string to control what select boxes appear and what goes inside them.