Transformar datas para gravar no banco de dados (MySQL, Postgres e outros)
Publicado por Phylipe Venancio Soares (última atualização em 29/03/2018)
[ Hits: 10.201 ]
Homepage: http://www.energiageradores.com
Download funcoes_datas.php.txt
É muito chato ter um campo de data preenchido aos olhos do usuário no formato dd/mm/YYYY e quando vai gravar no banco de dados ter que fazer malabarismos.
Por isso fiz duas funções que convertem as datas para gravar no banco de dados e também ao contrário, pegar o resultado gravado no banco de dados e converter para um formato mais agradável ao usuário final.
As datas podem ser passadas com horário ou não.
<?php
function mysql2date($data){
/*
Formato da data:
2018-03-21 14:47:25 -> retorna -> 21/03/2018 14:47:25
2018-03-21 14:47 -> retorna -> 21/03/2018 14:47
2018-03-21 -> retorna -> 21/03/2018
*/
$data = trim($data);
$ano = substr($data,0,4);
$mes = substr($data,5,2);
$dia = substr($data,8,2);
$data_arrumada = "$dia/$mes/$ano";
## Se a data fornecida tiver hora, coloca tudo junto.
if(strlen($data)==19){
$caracteres = -8;
}
if(strlen($data)==16){
$caracteres = -5;
}
if(strlen($data)>10){
$hora = substr($data,$caracteres);
$data_arrumada = $data_arrumada." ".$hora;
}
return $data_arrumada;
}
function date2mysql($data){
/*
Formato da data:
21/03/2018 14:47:25 -> retorna -> 2018-03-21 14:47:25
21/03/2018 14:47 -> retorna -> 2018-03-21 14:47
21/03/2018 -> retorna -> 2018-03-21
*/
$data = trim($data);
$dia = substr($data,0,2);
$mes = substr($data,3,2);
$ano = substr($data,6,4);
$data_arrumada = "$ano-$mes-$dia";
## Para Formato com hora completa HH:mm:ss
if(strlen($data)==19){
$caracteres = -8;
}
## Para Formato com hora parcial HH:mm
if(strlen($data)==16){
$caracteres = -5;
}
if(strlen($data)>10){
$hora = substr($data,$caracteres);
$data_arrumada = $data_arrumada." ".$hora;
}
return $data_arrumada;
}
## COMO USAR
echo "Data Formatada para gravar MySql: ".date2mysql("23/03/2018 13:13:00");
/*
Resultado
Data Formatada para gravar MySql: 2018-23-03 13:13:00
*/
echo "Data Formatada de Mysql para padrão Brasileiro: ".mysql2date("2018-23-03 13:13:00");
/* Resultado
Data Formatada de Mysql para padrão Brasileiro: 23/03/2018 13:13:00
*/
?>
Exemplo de recursividade: gerador de sequências de tamanho e soma dos elementos fixos
Converter String para Minúsculo
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Ativando e usando "zoom" no ambiente Cinnamon
Vídeo Nostálgico de Instalação do Conectiva Linux 9
Como realizar um ataque de força bruta para desobrir senhas?
Aderencia a Obsolencia Programada. (7)
VOL já não é mais como antes? (17)
Erro ao tentar executar Django (4)
Upscaling com imagem cortada no monitor secundário ao usar iGPU Multi ... (0)









