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

jquery bootstrap TypeError: $(…) is null Que título mas raro para un post. Pues bien, detrás de él hay uno de los problemas que nos podemos encontrar al trabajar con jQuery y Bootstrap a la v...
Mirar si una variable está vacía en PHP Hacemos una consulta a una base de datos, y primero debemos comprobar si nos ha devuelto algún registro. Pasamos variables de un formulario, y debemos...
Internacionalización de páginas web Hasta ahora, cuando queríamos indicarle a Google que la página también está disponible en otros idiomas, lo hacíamos con 'metaetiquetas'. Supongamo...
Efectos de animación con jQuery Aquí os dejo algunos enlaces de efectos de animación que pueden realizarse con la librería jQuery: Glimmer - Animación Free Style  Blend - Anima...

3 comentarios

Deja un comentario

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

*