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.539 ]
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 */ ?>
Pegando todos os feriados do ano
Saber se acesso a aplicação web é feito pela rede interna ou externa
Converte para maiúsculas a primeira letra de cada palavra, resolvendo o problema de acentos
Atualizar o macOS no Mac - Opencore Legacy Patcher
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Instalando Zoom Client no Ubuntu 24.04 LTS
Instalando Zoom Client no Fedora 40
Instalando Navegador Firefox no Debian 12
Bloqueando propagandas no Youtube e outros sites com o uBlocker Origin
Configurando static ipv6 em placa de rede eth0[DUVIDA] (1)
Sistema da Coréia do Norte - Red Star OS (59)
Comando interno CD não funciona (16)
Dificuldade em ler binário (12)
Em que pasta/arquivo ficam as configurações das janelas em derivados d... (2)