DataTables – Ordenar campo data d/m/Y (padrão brasileiro)

17
4610

DataTables é um plug-in para a biblioteca jQuery. É uma ferramenta altamente flexível, com base nos fundamentos da otimização progressiva, e irá adicionar controles avançadas de interação a qualquer tabela HTML.

Para quem utiliza o DataTables e deseja formatar o um campo data no formato brasileiro (pt-BR) d/m/Y deve ter percebido que somente mostrar os valores nesse padrão a ordenação não funciona corretamente, para resolver esse problema é preciso acrescentar este script.

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
 "date-br-pre": function ( a ) {
  if (a == null || a == "") {
   return 0;
  }
  var brDatea = a.split('/');
  return (brDatea[2] + brDatea[1] + brDatea[0]) * 1;
 },

 "date-br-asc": function ( a, b ) {
  return ((a < b) ? -1 : ((a > b) ? 1 : 0));
 },

 "date-br-desc": function ( a, b ) {
  return ((a < b) ? 1 : ((a > b) ? -1 : 0));
 }
} );

ao criar sua tabela definir a coluna data:

  columnDefs: [
                 { type: 'date-br', targets: 4 }
        
               ],

para mais informações acesse: https://www.datatables.net/

17 COMENTÁRIOS

  1. Olá Juliano!

    Você poderia me dar um super help? ^_^
    Estou com problema na ordenação da data em minha table. Tentei inserir o código do post acima, mas não funciona para o meu caso.
    Veja como fica a ordenação: http://tinypic.com/r/v79ruc/9
    Ele ordena por dia ao invés de ser por data.

    Você conseguiria me ajudar?

      • Muito obrigada pela resposta, Juliano. Eu só fui ver que havia sido respondida agora que estava em busca da resposta novamente (não chega por email?).
        Infelizmente não funcionou, inclusive utilizei mesmo código do link que você enviou, mas agora simplesmente não filtra a coluna selecionada no target.

        Que porcaria! :/

  2. Legal, deu certo. Só achei estranho que ao clicar na coluna a ordenação não funciona mais. Fica travada sempre na mesma ordenação.

    Valeu

  3. Muito boa a dica, funciona para o formato (d/m/Y) mas eu estava precisando de uma solução que funcionasse para o datetime no formato (d/m/Y H:i:s). Poderia me ajudar?

DEIXE UMA RESPOSTA

Please enter your comment!
Please enter your name here