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.241 ]
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
*/
?>
gerador de tabelas em html v2.2
Formatando data de yyyy/mm/dd para dd/mm/yyyy
Converte uma string binaria em seu respectivo codigo ascii
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático









