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: 9.937 ]
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 */ ?>
Data em extenso para Cabeçalho
Upload de fotos com banco de dados
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Criar entrada no GRUB para uma ISO Linux (7)
Open Suse não abre wi-fi automaticamente (3)
Ruído no Microfone (ALC287 - AMD Ryzen 5 7535HS) no Debian 12.9 (15)