Ordenando fechas con date/time en DataTables

Intro

DataTables es una librería de javascript que simplifica sobremanera la presentación de tablas en scripts de php. Además permite ordenar por columnas y realizar búsquedas de texto dentro de la tabla. Sin embargo, el ordenar por fecha cuando empleamos el sistema de fechas europeo no es algo que a DataTables se le de bien precisamente.

El plug-in date/time

Durante bastante tiempor hemos estado usando un plug-in llamado date-euro. Sin embargo, ha sido considerado obsoleto y abandonado por los desarrolladores, así que ya no sirve de mucho. Sin embargo, desde DataTables nos proponen una alternativa. Se trata del plug-in date/time, que se apoya en la librería moment.js

Para poder emplear este plug-in es necesario:

  • cargar la librería moment.js después de cargar DataTables
  • cargar el plug-in date/time
  • definir el formato de fecha que vamos a emplear

La carga de la librería y el plug-in la realizaremos lo antes posible en la carga de scripts. En nuestro caso las cargamos inmediatamente después que DataTables en index.php

La definición del tipo de datos de fecha se realiza justo antes de convertir una tabla con DateTable. En nuestro caso el formato de fecha que tenemos es el siguiente: DD-MM-YYYY. Para definirlo empleamos la siguiente línea:

$.fn.dataTable.moment( 'DD-MM-YYYY' );

Inmediatamente después convertimos la tabla:

$("example_tbl").dataTable();

Con esto conseguimos que la columna de fechas sea directamente ordenable.