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.916 ]
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 */ ?>
Crivo de Eratóstenes Simples em PHP
Classe para gerar calendário em PHP
Script para noticias no formato rss
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
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
Instalar o Microsoft Edge no Slackware 15
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Separar trafego da VPN da VPS (0)
Formatando cartão de memoria que nao formata[AJUDA] (17)
warsaw parou de funcionar após atualização do sistema (solução) (0)
Desde que seja DDR3, posso colocar qualquer memória? [RESOLVIDO] (6)