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.981 ]
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
Gerador de palavras aleatórias
Separa endereços sem formatação
script php q desliga um pc windows
Gerador de Thumbnail (miniatura)
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
Solução rápida para o problema do Network Manager conectar mas não navegar
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
Criar atalho para uma pasta na area de trabalho no Linux Mint? [RESOLV... (2)
Como rodo essa suinaria? [RESOLVIDO] (9)
Redes Wifi não aparecem no Linux Mint cinnamon [RESOLVIDO] (5)