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.795 ]
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 */ ?>
Função para gerar números aleatórios
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
estou com chromebook legalzinho. (2)
Estou com sede em aprender sobre o nosso querido Linux. (1)
big linux sem audio como resolver (2)
Como faz para dar um update-grub por shell script [RESOLVIDO] (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta