Saltar al contenido

¿Cómo ordenar por fecha con el complemento jquery de DataTables?

Lola, miembro de este staff, nos ha hecho el favor de escribir esta sección ya que conoce muy bien el tema.

Solución:

Clasificación por fecha: con un elemento oculto

Convertir la fecha al formato AAAAMMDD y anteponga al valor real (MM/DD/AAAA) en el

envuélvelo en un elemento, establece el estilo display:none; a los elementos Ahora la ordenación por fecha funcionará como una ordenación normal. Lo mismo se puede aplicar a la ordenación por fecha y hora.

HTML

YYYYMMDDMM/DD/YYYY

CSS

#data-table span 
    display:none; 

Debe hacer uso de los atributos de datos de HTML5.
https://www.datatables.net/examples/advanced_init/html5-data-attributes.html

Solo agrega el orden de datos elemento a su elemento.
No se requieren complementos.

Firstname Sign Up Date
Peter 13. November 2015
Daniel 06. August 2015
Michael 14. October 2015

Haga clic en el enlace “mostrar detalles” debajo Fecha (dd/mm/AAAA)luego puede copiar y pegar el código del complemento provisto allí


Actualización: creo que puedes cambiar el orden de los arrayal igual que:

jQuery.fn.dataTableExt.oSort['us_date-asc']  = function(a,b) 
    var usDatea = a.split('/');
    var usDateb = b.split('/');

    var x = (usDatea[2] + usDatea[0] + usDatea[1]) * 1;
    var y = (usDateb[2] + usDateb[0] + usDateb[1]) * 1;

    return ((x < y) ? -1 : ((x > y) ?  1 : 0));
;

jQuery.fn.dataTableExt.oSort['us_date-desc'] = function(a,b) 
    var usDatea = a.split('/');
    var usDateb = b.split('/');

    var x = (usDatea[2] + usDatea[0] + usDatea[1]) * 1;
    var y = (usDateb[2] + usDateb[0] + usDateb[1]) * 1;

    return ((x < y) ? 1 : ((x > y) ?  -1 : 0));
;

Todo lo que hice fue cambiar el __date_[1] (día y __date_[0] (mes), y reemplazado uk con us para que no te confundas. Creo que eso debería encargarse de eso por ti.


Actualización n. ° 2: debería poder usar el objeto de fecha para comparar. Prueba esto:

jQuery.fn.dataTableExt.oSort['us_date-asc']  = function(a,b) 
 var x = new Date(a),
     y = new Date(b);
 return ((x < y) ? -1 : ((x > y) ?  1 : 0));
;

jQuery.fn.dataTableExt.oSort['us_date-desc'] = function(a,b) 
 var x = new Date(a),
     y = new Date(b);
 return ((x < y) ? 1 : ((x > y) ?  -1 : 0));
;

Nos encantaría que puedieras compartir esta sección si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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