Converter data br para aceitar no banco de dados 0000-00-00
Me compliquei , quando eu vou passar a datas pro banco de dados, ele fica 0000-00-00 isso eu sei que é do padrão americano , mas qual função pode me ajudar?
data1 e data2 sao digitados pelo usuario no formato dd/mm/aaaa mas não está inserindo no banco.
O banco sempre fica 0000-00-00
//data1 datainicial do evento digitada pelo user
//data2 datafinal do evento digitada pelo user
//inserir no banco
echo $sql = "INSERT INTO noticias (nome,data1,data2,hora,titulo,texto) VALUES ('{$_POST['nome']}','{$_POST['data1']}','{$_POST['data2']}','{$_POST['hora']}','{$_POST['titulo']}','{$_POST['texto']}')";
--------------------------------------
INSERT INTO noticias (nome,data1,data2,hora,titulo,texto) VALUES ('aaaassssssssss','30/09/2010','5/10/2010','18:27:12','tst','tsttexto')
alguem pode me ajudar?
obs: estou usando o heidisql.
data1 e data2 sao digitados pelo usuario no formato dd/mm/aaaa mas não está inserindo no banco.
O banco sempre fica 0000-00-00
//data1 datainicial do evento digitada pelo user
//data2 datafinal do evento digitada pelo user
//inserir no banco
echo $sql = "INSERT INTO noticias (nome,data1,data2,hora,titulo,texto) VALUES ('{$_POST['nome']}','{$_POST['data1']}','{$_POST['data2']}','{$_POST['hora']}','{$_POST['titulo']}','{$_POST['texto']}')";
--------------------------------------
INSERT INTO noticias (nome,data1,data2,hora,titulo,texto) VALUES ('aaaassssssssss','30/09/2010','5/10/2010','18:27:12','tst','tsttexto')
alguem pode me ajudar?
obs: estou usando o heidisql.
comentários (0)
suspender
Lista de Respostas:
30/09/2010 9:23pm
(~14 anos atrás)
(~14 anos atrás)
Dá uma olhada neste script
Na versão 2.0 que eu adicionei lá está melhor..
http://phpbrasil.com/script/vKqc9w6SQCfK/funcao-para-transformar-data-do-padrao-ddmmyyyy-para-yyyy-mm-d
Na versão 2.0 que eu adicionei lá está melhor..
http://phpbrasil.com/script/vKqc9w6SQCfK/funcao-para-transformar-data-do-padrao-ddmmyyyy-para-yyyy-mm-d
01/10/2010 4:31pm
(~14 anos atrás)
(~14 anos atrás)
1111-11-11INSERT INTO noticias (nome,data1,data2,hora,titulo,texto) VALUES ('aaaaaaaaaa','11/11/1111','11/11/1111','16:20:52','11111111111','11111111111')
como podem pra ver eu usei uma função mas não consigo postar no banco , a data aperece no echo que eu coloquei na função
segue a função
function Convert_Data_Port_Ingl($datafin){ $conv1 = explode("/",$datafin); $conv2 = array_reverse($conv1); $saidata = implode("-",$conv2); return $saidata;}
Convert_Data_Port_Ingl($_POST['data2']);
echo $datafin = Convert_Data_Port_Ingl($_POST['data2']);
como podem pra ver eu usei uma função mas não consigo postar no banco , a data aperece no echo que eu coloquei na função
segue a função
function Convert_Data_Port_Ingl($datafin){ $conv1 = explode("/",$datafin); $conv2 = array_reverse($conv1); $saidata = implode("-",$conv2); return $saidata;}
Convert_Data_Port_Ingl($_POST['data2']);
echo $datafin = Convert_Data_Port_Ingl($_POST['data2']);
02/10/2010 1:10am
(~14 anos atrás)
(~14 anos atrás)
A função está correta.
Só faltou acertar na forma da aplicação da mesma
O mesmo você vai ter que fazer para as outras datas...
Bem...
A versão 2.0 tinha uma maneira de reverter a data.
Isso seria bom pra você na hora de imprimir a data.
Senão você vai imprimir pro usuário a data 2010-10-02
Bem...
Aí é você quem sabe...
Só faltou acertar na forma da aplicação da mesma
$dataConvertida = Convert_Data_Port_Ingl($_POST['data2']); $sql = "INSERT INTO noticias (nome,data1,data2,hora,titulo,texto) VALUES ('aaaaaaaaaa','{$dataConvertida}','11/11/1111','16:20:52','11111111111','11111111111')";
O mesmo você vai ter que fazer para as outras datas...
Bem...
A versão 2.0 tinha uma maneira de reverter a data.
Isso seria bom pra você na hora de imprimir a data.
Senão você vai imprimir pro usuário a data 2010-10-02
Bem...
Aí é você quem sabe...
11/10/2010 10:55pm
(~14 anos atrás)
(~14 anos atrás)
// De BR para EN $data_br = '11/10/2010'; $data_en = preg_replace('/^(\d{2})\/(\d{2})\/(\d{4})$/', '$3-$2-$1', $data_br); // De EN para BR $data_en = '2010-10-11'; $data_br = preg_replace('/^(\d{4})-(\d{2})-(\d{2})$/', '$3/$2/$1', $data_en);