2011-03-08 19 views
5

Estoy creando un formulario de tarjeta de crédito en Drupal. Necesito un campo de selección de fecha en el que los usuarios puedan seleccionar la fecha de caducidad de su tarjeta de crédito, que consiste únicamente en Mes y Año-Sin día.Crear campo de fecha con solo mes y año - Drupal

La forma Drupal #type 'fecha' produce un selector de fecha, que tiene la opción day-month-year. Solo necesito month-year. ¿Alguna ayuda?

Respuesta

3

¡Vaya a dos cuadros de selección y llene los campos con meses y años!

'#TYPE' => 'seleccionar', '#opciones' => array ( '1' => 'Enero', '2' => 'Julio', . . '12' => 'Diciembre',),

La misma manera para los años. ¡Puede generar la matriz anual usando un código php simple y luego usarla en la opción en lugar de dar todos los años manualmente!

+0

Gracias por la sugerencia. Definitivamente es una solución utilizable. – Sparky

9

Con el módulo Fecha API (parte de la Date module), se puede hacer algo como esto ....

<?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' 
); 
?> 

El tipo date_select dará a seleccionar elementos de forma de caja para su campo. Y la tecla de matriz #date_format le permite usar una cadena de formato de fecha de PHP para controlar qué cuadros de selección aparecen y qué va dentro de ellos.

2

Acabo de hacer esto en Drupal 7. Simplemente instale y habilite el módulo de fecha, agregue un campo de fecha a su tipo de contenido y luego cuando edite su configuración, en "Atributos de fecha para recopilar", solo marque Año y Mes. Luego, cuando un usuario esté creando una nueva instancia de ese tipo, obtendrá solo 2 cuadros desplegables; uno por mes y uno por año.

En cuanto a mostrarlos bien, primero vaya a Configuración> Fecha y hora, luego cree un nuevo Formato usando formato PHP Date p. Ej. "F Y" le dará algo como "abril de 2012". Cree un nuevo tipo de fecha que use ese formato y luego vuelva a la configuración de visualización del tipo de contenido y edite su nuevo campo de fecha para usar el nuevo tipo de fecha.

Cuestiones relacionadas