Se você quer converter uma data vinda do MYSQL para o formato PT-BR use o seguinte comando:
$data = implode("/",array_reverse(explode("-",$data)));
Assim vai converter a data do mysql para o formato brasileiro.
Ex: 2010-31-04 para 31/04/2010
Se você quer converter uma data em formato brasileiro para inserir no mysql use:
$data = implode("-",array_reverse(explode("/",$data)));
O resultado será: 31/04/2010 para 2010-31-04
Espero que ajude!
Post anterior
MySql Error 1005: Can’t create table (errno: 150)
Próximo post
Problemas com acentuação no PHP e MySQL
Lucas Catani
Posts relacionados
- 7 anos atrás
- 10 anos atrás
- 11 anos atrás
voçe e casado? tchau
Não .. hauauauaau
ola sou novato em php e n├úo sei o que eu estou errando ja que utilizei o cod. citado no site …pois o cliente quer que a data seja ordenada e qd alterei me deparei com aquele velho detalhe da data americana e utilizei o cod postado e n├úo esta dando certo ….
esse ├® o cod para exibir qd utilizo o cod acima da erro…muito obrigado
@Andre
Boa noite amigo, me adicione no msn se n├úo conseguir…. lucascatani@hotmail.com
para ordenar por data n├úo precisa converter ela, esse c├│digo ├® para mostrar a data para n├│s brasileiros no nosso formato e para mandar para o mysql no formato dele!
exemplo vem a data do banco:
$datadobanco = Select date from banco
echo $datadobanco;
//vai mostrar 2010-31-05 que ├® (ano-dia-M├¬s)
agora convertemos ela para aparecer como nós estamos acostumados (dia-mês-ano)
$dataconvertida = implode(“/”,array_reverse(explode(“-“,$datadobanco)));
echo $dataconvertida;
//agora vai mostrar a data assim 31/05/2010
Se você está querendo pegar os registros ordenados por data do banco faça isso no sql:
Select * from tabela order by ‘data’;
Abraço!
Oi..
Já passei por inumeros sites ..e nada resolve meu problema
preciso converter o valor do campo data digitado pelo usuário para o padrão do mysql
o usuário digita 10/03/1987 e tem que virar para cadastrar 1987-03-10.
Tentei sua explicação, mas não adiantou.
Já tentei inumeras outras e nada
A quest├úo ├® que estou programando em PHP orientado a objetos usando MVC….tenho a classe view…control e model
onde faço essa conversão que tu ensinou?
Tenho isso na view após o usuário confirmar cadastro
if(isset($_POST)){
$nome_cliente = $_POST[“nome_cliente”];
$nome_atendimento = $_POST[“nome_atendimento”];
$telefone = $_POST[“telefone”];
$email = $_POST[“email”];
inicio_contratoC == implode(“-“,array_reverse(explode(“/”,$inicio_contratoC)));
$inicio_contratoC = $_POST[“inicio_contratoC”];
$cad = new Control();
$cad->cadCliente($nome_cliente,$nome_atendimento,$telefone,$email,$inicio_contratoC);
}
Tenho tamb├®m javascript para garantir que os campos n├úo sejam nulos e que data seja inserida no formato DD/MM/AAAA. Afinal n├úo posso exigir que o usu├írio preencha no padr├úo americano.
alguma id├®ia??
Obs. Uso o phpMyAdmin =)
Grata
@Andre
me manda teu código que eu analiso! Abraço!
@Lucas Catani
Voc├¬ inverteu as duas linhas, primeiro voc├¬ recebe, depois voc├¬ converte…
certo
$inicio_contratoC = $_POST[“inicio_contratoC”];
$inicio_contrato = implode(“-“,array_reverse(explode(“/”,$inicio_contrato)));
errado
$inicio_contratoC = $_POST[“inicio_contratoC”];
inicio_contratoC == implode(“-“,array_reverse(explode(“/”,$inicio_contratoC)));
Grande abraço!
Ajudou DEMAIS DA CONTA !!! Vlws !!! E Parab├®ns !!!
gostaria de saber como usar esse codigo em um campo datatime ?
att.
Cleber
Prezado Lucas,
Tua postagem foi em 2010.
e foi util a mim hj em 2014.
abraço!
Cara, vc me salvou a vida. Muito obrigado mesmo
Olá Lucas
Parab├®ns pelo blog.
Sou estudante de MySQL e SQL server no curso ADV aqui no Rio, http://www.cursoadv.com.br, gostaria de saber se esse comando pode tamb├®m ser usado no sql server.
OI, eu nunca testei no SQL SERVER. Mas deve ter uma sintaxe parecida.
Bom dia,
gostaria de saber se existe uma forma “simples”, de converter as datas que j├í est├úo no DB para outro formato.
Ex.: tenho os registros com as datas da seguinte forma: 18/08/2014, etc.
Gostaria de converter para 2014-08-18.
Todos os registros.
Grato!
No banco de dados elas devem ficar gravadas aaaa-mm-dd
Para exibir ela no formato desejado, você usa a função que tem neste tópico.
Muito obrigado camarada! ajudou bastante!
<?php
function DataBRtoMySQL( $DataBR ) {
$DataBR = str_replace(array(" – ","-"," "," "), " ", $DataBR);
list($data, $hora) = explode(" ", $DataBR);
return implode("-",array_reverse(explode("/",$data)))." ". $hora;
}
$DataBrasil = "27/09/2014 – 01:05:42";
echo DataBRtoMySQL($DataBrasil)."”;
$DataBrasil = “27/09/2014-01:05:42″;
echo DataBRtoMySQL($DataBrasil).””;
$DataBrasil = “27/09/2014 01:05:42″;
echo DataBRtoMySQL($DataBrasil).””;
$DataBrasil = “27/09/2014 01:05:42″;
echo DataBRtoMySQL($DataBrasil).””;
$DataBrasil = “27/09/2014 01:05:42″;
echo DataBRtoMySQL($DataBrasil).””;
?>
Obrigado me ajudou bastante, parabéns.
Ótimo ajudou demais!
melhor maneira ├® usar express├úo literal
$data = preg_replace(“‘^([0-9]{2})/([0-9]{2})/([0-9]{4})$'”,’$3-$2-$1’,$data);
o inverso (para desfazer):
$data = preg_replace(“‘^([0-9]{4})-([0-9]{2})-([0-9]{2})$'”,’$3/$2/$1’,$data);
NA minha opini├úo pouca gente entende as express├Áes literais, ent├úo fica mais f├ícil fazer da maneira que eu postei. Sua resposta tamb├®m ├® v├ílida.
Muito obrigado. Fun├º├Áes simples e objetivas.
Muito bom post. Simples, prático e funcional.
Parab├®ns.
A funcao do Luiz R para mim funcionou perfeitamente
EU fiz conforme mostrado. deu tudo certo. s├│ que para exibir na minha tabela, eu n├úo gostaria que aparece o ano. Atualmente est├í assim 18/04/2015 e eu gostaria que aparece somente dia e m├¬s = 18/04. j├í tentei de diversas maneiras e n├úo consigo, al├®m de ter procurado em tudo quanto ├® lugar na net
. ser├í que algu├®m poderia me ajudar?
@Adilson
$databanco = $data_encontrada_pelo_id->data_tabela_seu_bd;
$z = DateTime::createFromFormat(“Y-m-d”, $databanco);
$diames = $z->format(“d-m”);
echo $diames;
resultado na tela = dia-mes
T├úo antigo e at├® hoje ajudando a n├│s meras larvas em php
onde eu colocaria esse comando em meu codigo?
$data = implode(“-“,array_reverse(explode(“/”,$data)))
Posta teu arquivo aí.
Muito legal, eu estava mesmo precisando deste c├│digo
CARA! PARABÉNS! FUNÇÃO ÚTIL!
Extremamente útil. Procurei em vários sites internacionais uma função similar, mas você exemplificou perfeitamente!
Jesus e Maria te abençoe demais!
Olá!
Parab├®ns pelo blog e pelo artigo!
Estou com uma dúvida e queria ver com você se consegue me ajudar, por favor.
Tenho um campo na minha tabela no MySQL que ├® do tipo varchar e armazena uma data, no formato: 2016-04-27T21:42:34-03:00
Preciso fazer um select filtrando os últimos 3 dias desse campo de data, mas não estou conseguindo fazer o filtro convertendo de varchar pra date.
Poderia me ajudar, por favor?
Obrigado!
Boa noite, s├│ consegui ver tua necessidade agora. Meio atrasado!
Primeira coisa, voc├¬ poderia gravar essa data em timestamp ao inv├®s de varchar? A├¡ fica mais f├ícil a opera├º├úo. Posta teu c├│digo.
tem alguma função para formatar assim : 15 ABR, 2016 , a minha vem do banco de dados assim 2016-02-22 !!
Em 2016 está sendo util haha vlw
Irm├úo muito legal,n├úo s├│ compartilhar o conte├║do, mas tamb├®m a preocupa├º├úo de responder a maioria das perguntas, forte abra├ºo!
Obrigado, abração
Resolveu meu problema de forma simples. Vlw cara.
De todas as pesquisas que fiz aqui foi onde chegou mais perto deu entender essa quest├úo. fa├ºo parte dessa galera que sentar e aprender a fazer sozinho. Mas…. sem “ensinamentos jedi” o neg├│cio as vezes se complica. Estou montando um sistema de cadastro usando PHP, MySQL e Dreamweaver. O grande problema ├® que na hora de cadastrar as informa├º├Áes o “INSERT” do Dreamweaver parece criar uma grafia um pouco “diferente” de quando vejo algu├®m criar o c├│digo. Mas enfim.. t├í tudo pronto s├│ n├úo consigo essa parte de digitar a data d/m/Y no input e entrar Y/m/d no Banco. Na visualiza├º├úo eu j├í consegui inverter na hora de “mostrar” a data. EU usei esse c├│digo aqui:
Já tentei usar seu código em várias partes da minha página de cadastro, mas nada. Desde já agradeço a atenção.
Muito bom!! Simples e objetivo!! Me ajudou muito..
2018 e continua sendo util <3