0

Converter data br para aceitar no banco de dados 0000-00-00

criado por juan em 30/09/2010 6:43pm
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.

Lista de Respostas:

0

0
01/10/2010 4:31pm
(~14 anos atrás)
juan respondeu:
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']);

0
02/10/2010 1:10am
(~14 anos atrás)
A função está correta.
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...

0
05/10/2010 6:40pm
(~14 anos atrás)
juan respondeu:
Obrigado agora funcionaou 100%

s2

0
11/10/2010 10:55pm
(~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);

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)