- Anúncio -
- Anúncio -
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/
- Anúncio -
Great Solution!! Congrats! I was looking for this for a long time! Thanks!
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?
Olá Amanda,
da uma olhada como funciona: http://jsfiddle.net/jrossetto/fgj0dsfn/4/
se a sua coluna data de atualização for a primeira igual a do exemplo que enviei… vc precisa alterar o targets.
columnDefs: [{
type: 'date-br',
targets: 0
}]
lembrando que as colunas sempre começam em “0”.
espero ter ajudado.
att
Juliano
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! :/
Olá Amanda,
tenta seguir este exemplo:
att
Juliano
Oi Juliano!
Acabei não respondendo, mas hoje fui fazer novamente seguindo este seu exemplo e funcionou perfeitamente.
Muitissimo obrigada! 🙂
Boa Tarde Juliano, ótima solução, parabéns !
é possível setar mais de um target ?
como targets: 0,1 ???
Boa tarde Ricardo,
muito obrigado.
É possível sim, utilize a função assim:
columnDefs: [
{ type: 'date-br', targets: [0, 1] }
],
Abs Juliano
Muito grato amigo.
Vlw, cara! Me ajudou muito!
Valeu! Ajudou bastante! Muito obrigado!
Muitooo bom!!!
Opa, valeu Juliano.
Tinha que ser meu parente!
Obrigado.
Excelente!!! Gracias Juliano
Muito obrigado cara, pela disponibilidade e ajuda!!!!
Ajudou muito 😀
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
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?