Ir para conteúdo

POWERED BY:

Arquivado

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

Juninho De Luca_54619

Comparação de datas em PHP x MySQL

Recommended Posts

Bom dia galera,

Uma dúvida que me vem em algumas ocasiões é nos momentos em que PHP e MySQL possuem funções em que ambos podem resolver o problema. Qual procedimento usar como padrão?

 

Um exemplo bem simples é o manuseio de datas.

Se eu tiver uma lista de trabalhos datados, mas quero que exiba apenas os que tenham no máximo 30 dias.

 

Eu posso verificar isso com DateTime no PHP, fazer um request no DB de tudo, e usar algo como:

 

$currentDate = new DateTime(date('2014-01-25'));
$oldWorksDate  = new DateTime(date('2013-12-'.$i));
$hideOldWorks = $currentDate->diff($oldWorksDate)->days;

if($hideOldWorks > 30) {
   continue;
 } else {
   echo "Trabalhos visíveis <br />";
}

Ou eu poderia passar uma variável direto string do SQL que vou executar para buscar as datas.

Qual o recomendado? Há diferença em desempenho?

 

Mentalmente, pensei o seguinte: se eu tiver uma relação gigante de trabalhos... fazer um SELECT * FROM, para depois exibir o que me interessa com o if/else pode ficar meio lento. Neste caso, como a relação de trabalhos ainda está pequena, parece pouco significativo.

 

No entanto, estava evitando manipular as string de MySQL.

Enfim... espero orientação dos mestres =D

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por questões de performance e organização, usa-se a linguagem de programação ao invés do banco de dados para fazer lógica. Um if/else na linguagem não é nada. Nesse caso, dependendo da estrutura das tabelas, você pode/deve usar um WHERE.

 

Só que esse if aí está uma bela gambiarra, você pode negar a condição ao invés de usar um continue :sick::

if(! $hideOldWorks > 30) {
   echo "Trabalhos visíveis <br />";
}

Ou ainda melhor usar o operador inverso:

if($hideOldWorks <= 30) {
   echo "Trabalhos visíveis <br />";
}

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.