Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

PauloHenrique222

dataTable, Ordenar por Data

Recommended Posts

Boa Noite Pessoal,

(desenvolvendo um sistema na base de ZendFramework e PHP)

estou aqui pra pedir uma ajuda master literalmente pra vocês, bom eu estou com um "problema" na minha dataTable, que é o seguinte eu preciso que ela liste pela data ou seja;

 

01/02/2013,

02/02/2013,

03/02/2013

 

infelizmente, na dataTable que eu to listando, ela lista a data, mas está listando por dia praticamente, ela lista todos os dias primeiro, depois dia 2, depois dia 3 e assim por diante exemplo;

 

01/02/2013,

01/03/2013,

01/04/2013,

01/05/2013,

02/02/2013,

02/03/2013,

02/04/2013,

02/05/2013

 

Até no momento não conseguir ver uma solução.

Alguém que pode me explicar o porque dela fazer essa busca desta forma? e se jah ter uma solução em mente que possa me ajudar.

Agradeço desde já a atenção que você tirou para olhar esse post.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na hora de mandar listar coloca a order assim.. ORDER BY STR_TO_DATE(data, '%d/%m/%Y') onde data é o campo da sua base que contem as datas.

 

Qualquer coisa posta o código ae pra gente ver, mas isso deve funcionar. ;D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na hora de mandar listar coloca a order assim.. ORDER BY STR_TO_DATE(data, '%d/%m/%Y') onde data é o campo da sua base que contem as datas.

 

Qualquer coisa posta o código ae pra gente ver, mas isso deve funcionar. ;D

 

é irmãozin, demorei responder o post porque não tava no trabalho ^^, enfim hoje tava aqui mexendo e tirei a conversão da data logo percebi que oderna corretamente, que tem uma função no sistema que ela converte a data pra BR, só que pelo jeito o SQL não curtiu muito a ideia e resolveu pegar o dia, considerando ano, ou seja ele ver a data que ta desta forma

01/05/2013

desta forma

2013/05/01

assim fazendo pegar o ano e ordenar ele em ordem crescente

chega a ser engraçado ksaoask''

mas tipo amigo, eu uso o postgres no serviço, e acho que não tem essa função no postgres, lembro dela no mysql

STR_TO_DATE, tem outra ideia para compartilhar comigo sobre uma função que faça essa conversão pra nós..

agradeço muito a ajuda..

Compartilhar este post


Link para o post
Compartilhar em outros sites

[inline]$.extend(jQuery.fn.dataTableExt.oSort, {
"date-uk-pre": function (a) {
var x;
try {
var dateA = a.replace(/ /g, '').split("/");
var day = parseInt(dateA[0], 10);
var month = parseInt(dateA[1], 10);
var year = parseInt(dateA[2], 10);
var date = new Date(year, month - 1, day)
x = date.getTime();
}
catch (err) {
x = new Date().getTime();
}

return x;
},

"date-uk-asc": function (a, b) {
return a - b;
},

"date-uk-desc": function (a, b) {
return b - a;
}
});

function aplicarDataTable(){
$('#lista_metas_ativas').dataTable({
"sPaginationType": "full_numbers",
"aoColumns": [
null,
{ "sType": "date-uk" },
{ "sType": "date-uk" },
null,
null
],
"oLanguage": {
"sLengthMenu": "

Mostrar

_MENU_

metas por página

",
"sZeroRecords": "Nenhuma meta encontrada",
"sInfo": "Mostrando de _START_ a _END_ de _TOTAL_ metas",
"sInfoEmpty": "Mostrando de 0 a 0 de 0 metas",
"sInfoFiltered": "(Filtrados de _MAX_ metas)",
"sSearch": "Pesquisar:",
"oPaginate": {
"sFirst": "Primeira",
"sLast": "Última",
"sNext": "Próxima",
"sPrevious": "Anterior"
}
}
});[/inline]

 

Solução do problema da dataTable, não listar corretamente a data.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para permitir a correta classificação com datas com o dataTable, faço da seguinte forma:

 

Preparando os dados:

 

$data = strtotime($data_do_mysql);

$data_br = date("d/m/Y",$data);
$hora_br = date("h:i:s",$data);
Exibindo os dados:
<td data-search='$data_br' data-order='$data'>$data_br</td>
Resumo:
data-search: serve para o campo de busca, caso esteja sendo utilizado (neste caso, a data no formato pt-br);
data-order: dá a instrução para o plugin a ordem de datas que deve ser seguida (com o strtotime convertendo para timestamp Unix).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.