Datas em PHP com MySQL
Quando se resgata datas do banco de dados, para modificar para o nosso padrão xx/xx/xxxx isso é feito no banco ou no php.
Fabio Santos
Curtidas 0
Respostas
William
16/08/2014
Existem 2 possibilidades, pode ser no PHP ou MySQL:
Seguem 2 funções que utilizo em meus projetos quando preciso formatar datas para exibição ou gravação no banco de dados
Se for via instrução SQL para exibir, pode ser assim (dd/mm/yyyy):
Seguem 2 funções que utilizo em meus projetos quando preciso formatar datas para exibição ou gravação no banco de dados
<?php /* * Função para formatar data no formato Americano * @param $data - Data no formato brasileiro dd/mm/yyyy * @return String - Data no formato americano yyyy-mm-dd */ function dataBrToEng($data){ if (!empty($data)){ $data = explode("/", $data); return $data[2].'-'.$data[1].'-'.$data[0]; } } /* *Função para formatar data no formato brasileiro * @param $data - Data no formato americano yyyy-mm-dd * @return String - Data no formato brasileiro dd/mm/yyyy */ function dataEngToBr($data){ if (!empty($data)){ $data = explode("-", $data); return $data[2].'/'.$data[1].'/'.$data[0]; } } ?>
Se for via instrução SQL para exibir, pode ser assim (dd/mm/yyyy):
SELECT DATE_FORMAT(data_banco,'%d/%m/%Y') FROM TABELA
GOSTEI 0
Fabio Santos
16/08/2014
Na sua opinião é melhor fazer isso na linguagem ou no banco?
GOSTEI 0
Marcio Araujo
16/08/2014
Posso tentar responder, eu vejo na maioria dos casos isso sendo feito pela linguagem mesmo mas não sei te dizer qual o melhor.
GOSTEI 0
Marisiana Battistella
16/08/2014
Se você estiver utilizando um select para retornar os dados do banco, pode trazer a data já formatada conforme o exemplo que o William passou.
Eu acho mais prático, sem contar que já reduz linhas de código na aplicação, pois se vc não formatar no select vai ter q formatar na aplicação para poder mostrar a data no formato correto.
Eu acho mais prático, sem contar que já reduz linhas de código na aplicação, pois se vc não formatar no select vai ter q formatar na aplicação para poder mostrar a data no formato correto.
GOSTEI 0
Fabio Santos
16/08/2014
Melhor no banco então?
GOSTEI 0
Marisiana Battistella
16/08/2014
Na minha opinião sim.
Quanto mais você utilizar os recursos do banco de dados melhor, pois fica muito mais fácil de controlar a performance da aplicação.
Quanto mais você utilizar os recursos do banco de dados melhor, pois fica muito mais fácil de controlar a performance da aplicação.
GOSTEI 0
William
16/08/2014
Respeito muito a opinião da Marisiana, mas por experiências passadas ruins e filosofia pessoal de trabalho não gosto de trabalhar com instruções SQLs proprietárias nos meus projetos, nesse caso o comando DATE_FORMAT() é uma função que pertence ao MySQL, não iria funcionar no SQL Server por exemplo.
Já passei por situações onde precisei migrar o SGBD da aplicação e garanto que foi uma experiência ruim porque na época a aplicação possuía varias instruções proprietárias, demorei muito!
Hoje em dia meus projetos principalmente em PHP são independentes de SGBD utilizo PDO para ter essa flexibilidade, mesmo existindo questões de performance em discussão ainda prefiro a independência de SGBDs.
Por essas e outras prefiro deixar a maioria das regras na aplicação.
Obs.: Existem situações onde Store Procedures e Triggers são necessárias, mas entra uma boa documentação.
Já passei por situações onde precisei migrar o SGBD da aplicação e garanto que foi uma experiência ruim porque na época a aplicação possuía varias instruções proprietárias, demorei muito!
Hoje em dia meus projetos principalmente em PHP são independentes de SGBD utilizo PDO para ter essa flexibilidade, mesmo existindo questões de performance em discussão ainda prefiro a independência de SGBDs.
Por essas e outras prefiro deixar a maioria das regras na aplicação.
Obs.: Existem situações onde Store Procedures e Triggers são necessárias, mas entra uma boa documentação.
GOSTEI 0
Fabio Santos
16/08/2014
Podemos concluir que no MySQL é melhor deixar como está, você considera o mesmo para outros bancos mais robustos?
GOSTEI 0
William
16/08/2014
Como regra geral deixo os tipos de dados como estão no banco de dados independente de qual seja o SGBD, trato o retorno direto na aplicação!
GOSTEI 0
Fabio Santos
16/08/2014
Obrigado William, na documentação do PHP existe alguma parte direcionada a interação com banco de dados?
GOSTEI 0
Marisiana Battistella
16/08/2014
Respeito muito a opinião da Marisiana, mas por experiências passadas ruins e filosofia pessoal de trabalho não gosto de trabalhar com instruções SQLs proprietárias nos meus projetos, nesse caso o comando DATE_FORMAT() é uma função que pertence ao MySQL, não iria funcionar no SQL Server por exemplo.
Já passei por situações onde precisei migrar o SGBD da aplicação e garanto que foi uma experiência ruim porque na época a aplicação possuía varias instruções proprietárias, demorei muito!
Hoje em dia meus projetos principalmente em PHP são independentes de SGBD utilizo PDO para ter essa flexibilidade, mesmo existindo questões de performance em discussão ainda prefiro a independência de SGBDs.
Por essas e outras prefiro deixar a maioria das regras na aplicação.
Obs.: Existem situações onde Store Procedures e Triggers são necessárias, mas entra uma boa documentação.
Já passei por situações onde precisei migrar o SGBD da aplicação e garanto que foi uma experiência ruim porque na época a aplicação possuía varias instruções proprietárias, demorei muito!
Hoje em dia meus projetos principalmente em PHP são independentes de SGBD utilizo PDO para ter essa flexibilidade, mesmo existindo questões de performance em discussão ainda prefiro a independência de SGBDs.
Por essas e outras prefiro deixar a maioria das regras na aplicação.
Obs.: Existem situações onde Store Procedures e Triggers são necessárias, mas entra uma boa documentação.
Também respeito tua opinião William!
Porém, esse trabalho de alterações não mudaria muito se tivesse que migrar a aplicação para uma outra tecnologia, como por exemplo, Delphi para Java.
Existem casos e casos, mas a escolha do SGBD que será utilizado nas aplicações deve sempre ter muito mais atenção do que todo o restante.
Falo isso porque vejo que a maioria dos profissionais focam demais nas aplicações e esquecem que o coração do sistema é o banco de dados.
GOSTEI 0
William
16/08/2014
Suas colocações são válidas e pertinentes Marisiana, com certeza a maneira correta (raras empresas ou no mundo perfeito) de se pensar em um projeto de software passa fortemente na escolha do SGBD!!!
A única ressalva é que para clientes pequenos e médios (são extremamente imediatistas) ou até projetos que são pegos no meio do caminho as coisas são bem diferentes.
Mas como falei nossas opiniões são fortemente embasadas em experiências profissionais (boas ou ruins) que tivemos no passado, somando-se experiências de 2 profissionais se tem um universo de conhecimento muito grande e valioso.
A única ressalva é que para clientes pequenos e médios (são extremamente imediatistas) ou até projetos que são pegos no meio do caminho as coisas são bem diferentes.
Mas como falei nossas opiniões são fortemente embasadas em experiências profissionais (boas ou ruins) que tivemos no passado, somando-se experiências de 2 profissionais se tem um universo de conhecimento muito grande e valioso.
GOSTEI 0
Marisiana Battistella
16/08/2014
Boa observação William!
Cada caso é um caso...
Cada caso é um caso...
GOSTEI 0
Marisiana Battistella
16/08/2014
Claro, quando se pega um sistema já existente é mais complicado, porque tem que ver o que tem e o que pode ser feito.
Mas eu penso que mesmo para sistemas menores, o analista e desenvolvedor deve ter essa noção e pensar na melhor opção.
Mas eu penso que mesmo para sistemas menores, o analista e desenvolvedor deve ter essa noção e pensar na melhor opção.
GOSTEI 0
Fabio Santos
16/08/2014
Obrigado William, na documentação do PHP existe alguma parte direcionada a interação com banco de dados?
Para tentar finalizar e esclarecer tudo:
Em sistemas pequenos feitos do inicio, PHP ou no Banco?
Em sistemas maiores feitos do inicio, PHP ou Banco?
GOSTEI 0
William
16/08/2014
Fabio 2 profissionais postaram suas opiniões, agora fica a seu cargo escolher qual delas melhor se encaixa no seu projeto!!!
GOSTEI 0
Fabio Santos
16/08/2014
Entendi, tenho que fazer do que achar melhor e mais conveniente. valeu
GOSTEI 0