Classificar um array de datas em PHP pode ser complicado, especialmente se as datas não estiverem em um formato padronizado.
Em seu caso específico, você tem uma matriz de datas em formatos diferentes, como "01-11-2012" e "01-01-2014". Usar a função asort, que classifica arrays por valores em ordem crescente, não funcionará neste caso porque trata cada data como uma string e ignora a hierarquia ano-mês-dia.
Para classificar corretamente seu array, você pode usar uma função de classificação personalizada que converte cada data em um formato classificável antes da comparação.
Convertendo datas em carimbos de data e hora UNIX
Um método simples é converter cada data em um carimbo de data/hora UNIX usando a função strtotime(). Os carimbos de data/hora UNIX representam datas como o número de segundos desde 01/01/1970, o que os torna fáceis de comparar e classificar.
Aqui está um exemplo de uso de uma função de classificação personalizada para classificar as datas usando carimbos de data/hora UNIX:
usort($arr, function ($a, $b) {
return strtotime($a) - strtotime($b);
});
Esta função receberá duas datas como entrada (representadas pelas variáveis $a e $b) e retornará a diferença entre seus carimbos de data/hora UNIX. A matriz resultante será classificada em ordem cronológica crescente.
Considerações Adicionais
É importante observar que este método assume que todas as datas estão no mesmo formato. Se suas datas vierem de fontes diferentes ou usarem formatos de data diferentes, você precisará usar uma biblioteca de conversão e análise de data mais robusta.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3