jQuery datepicker, php, mysql y las fechas en formato español

Veamos un caso particular a la hora de programar con jquery ui. El componente DatePicker nos proporciona una manera muy visual y eficiente de insertar fechas en nuestros formularios. Pero como muchos veteranos de la programación sabrán, hay un problema:

Las fechas en programación siguen el formato inglés: YYYY-mm-dd (2012-12-03). Aquí en España, y en muchos otros paises, las fechas son en formato dd-mm-YYYY (03-12-2012). Así pues, debemos permitir al usuario insertar el formato español y almacenarlo en formato inglés. Al recuperar los datos, debemos leerlos en inglés y mostrarlos al usuario en formato españo.

Añadir registros

1
2
/* El textbox donde se mostrará el calendario para escoger fecha */
<input id="fecha" class="text ui-widget-content ui-corner-all" type="text" name="fecha" />
1
2
3
4
5
6
/* Con jquery UI asignamos al textbox el datepicker para que salga el calendario */
$( "#fecha" ).datepicker({
defaultDate: "+1w",
numberOfMonths: 1,
dateFormat: 'dd-mm-yy',
});

Como podemos ver, el formato de la fecha cuando seleccionemos el día, será: 01-07-2012. Y este formato, Mysql no lo admite. Entonces, cómo hacemos para almacenar la fecha que nos viene en formato español, y debemos almacenarlo en formato inglés ? Con el siguiente código

2
$fechaformatoingles= date('Y-m-d', strtotime($_POST['fecha'])));

Con la función strtotime, convertimos la fecha en formato timestamp. Posteriormente con la función date convertimos el timestamp anterior al formato deseado. En ese momento ya tenemos la fecha en formato inglés y que acepta Mysql

Mostrar los datos

Tenemos los datos almacenados en formato inglés: ‘2012-07-02’. Y queremos mostrarlos en formato español. Lo haremos con la función DATE_FORMAT de mysql.

2
SELECT DATE_FORMAT(fecha, '%d-%m-%Y') AS mifecha WHERE ID=1

Esto nos devolverá un registro con el campo ‘mifecha’ que contendrá la fecha en formato español. Atención al parámetro formato de DATE_FORMAT. La %Y indica que el año debe ser con cuatro dígitos. Si lo pones en minúscula, el año será de dos dígitos.

Bien, no voy a entrar en el código php para las consultas. Solo pretendo mostrar cómo trabajar con las fechas en español y los objetos datepicker de jquery.

Un videotutorial

Más información

Artículos relacionados

Puesta en marcha con jQuery En primer lugar, debemos ir al web oficial de jQuery y descargarlo. Para quien no domine el tema, es un fichero .js que se puede descargar desde la pá...
Validar un formulario con jQuery antes de enviarlo Una de las funciones que le dan un perfil mas profesional a nuestra web, es la validación de los formularios, antes de enviarlos. Una opción es enviar...
jQuery – Capturar valor de desplegable y esc... Estrenando nuestro perfil de CodePen.io, vamos a ver un ejemplo en jQuery que trabaja con desplegables (selects) y cajas de texto en formularios. En m...
TimePicker trabajar con horas en jQuery Ui Los que utilizamos jQuery UI para crear nuestros paneles de administración, disponemos de un widget, datepicker, que nos permite trabajar con fechas. ...

3 comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*