
Inserindo Data Em Php
#1
Posted 21/09/2005, 21:22
Mas sei que o mysql joga a data invertida...
No momento em que estiver inserindo a data no mysql, ali já tenho que fazer algum tratamento?
Fiz o teste agora... se a o campo no bd é date e se jogar um field simples no form, qdo for inserir a data do tipo (dd/mm/aaaa) ele joga 0000-00-00 no bd...
Como tratar isso na entrada no dado pelo formulário e na saída...
Em tempo: só preciso dos dados (dd-mm-aaaa) e não preciso da hora.
Abraço
Rafael
Dourados/MS
#2
Posted 21/09/2005, 22:44
neste caso .. vc tem q mandar a data em ingles ... igual no exemplo...$data = "2005/12/31";
echo substr($data,8,2).".".substr($data,5,2).".".substr($data,0,4);
//resultado = 31/12/2005
tenta fazer o reverso desse codigo para trocar a data ...
acho q da para fazer ..eu soh nao tentei ...
----
eu tenho um script q vc digida no form a data certa(brasil) .. na hora de mandar ele converta para o ingles ... e na hora do print ele converte novamente na data do brasil ...
mas ele é bem mais complexo...
Edição feita por: henriquefr, 21/09/2005, 22:47.
?>
#3
Posted 21/09/2005, 22:52
Vou tentar entendê-lo
Abraço
Rafael
Dourados/MS
#4
Posted 21/09/2005, 23:09
tipo ... para inserir faz assim ...function Convert_Data_Port_Ingl($entradata){
$conv1 = explode("/",$entradata);
$conv2 = array_reverse($conv1);
$saidata = implode("-",$conv2);
return $saidata;
}
$data = Convert_Data_Port_Ingl($entradata)//$entrada vc mudar por exemplo: Convert_Data_Port_Ingl($_POST[data])
mysql_query("INSERT INTO `tabela` (data) VALUES ('$data')");
--------------------------------------------------------------
aki do ingles para o portugues ...
aki vc faz assim:function Convert_Data_Ingl_Port($entradata){
$conv1 = explode("-",$entradata);
$conv2 = array_reverse($conv1);
$saidata = implode("/",$conv2);
return $saidata;
}
echo Convert_Data_Ingl_Port($entradata) //muda tambem $entrada, coloca por exemplo Convert_Data_Ingl_Port($linha[data])//
acho q da para entender ...
Edição feita por: henriquefr, 21/09/2005, 23:12.
?>
#5
Posted 12/01/2009, 20:49
usando o código do post inseri no meu código da forma que eu entendi, mas não está funcionando.
aqui vai a função
[codebox]<script type="text/javascript" language="javascript">
function Convert_Data_Port_Ingl($data_nasc){
$conv1 = explode("/",$data_nasc);
$conv2 = array_reverse($conv1);
$saidata = implode("-",$conv2);
return $saidata;
}
</script>[/codebox]
e aqui a chamada
[codebox] $data_nasc = Convert_Data_Port_Ingl($_POST['data_nasc']),//$entrada vc mudar por exemplo: Convert_Data_Port_Ingl($_POST[data])[/codebox]
estou recebendo o seguinte erro:
Fatal error: Call to undefined function Convert_Data_Port_Ingl() in C:\wamp\www\New_nworks\valida_cpf.php on line 118
Podem me ajudar?
#6
Posted 13/01/2009, 00:53
<?php function Convert_Data_Port_Ingl($data_nasc){ $conv1 = explode("/",$data_nasc); $conv2 = array_reverse($conv1); $saidata = implode("-",$conv2); return $saidata; } ?>
Muller Dias
ex-administrador Fórum WMO
#7
Posted 13/01/2009, 21:28
Coloquei a função da forma correta:
[codebox]<?php
function Convert_Data_Port_Ingl($data_nasc){
$conv1 = explode("/",$data_nasc);
$conv2 = array_reverse($conv1);
$saidata = implode("-",$conv2);
return $saidata;
}
?>[/codebox]
e estou chamando assim:
[codebox]$data_nasc= Convert_Data_Port_Ingl($_POST[data_nasc]),[/codebox]
como não deu certo, pensei que pudesse ser o nome da função direto e inseri assim:
[codebox] Convert_Data_Port_Ingl($_POST[data_nasc]),[/codebox]
Mas em ambos os casos o banco ainda fica 0000-00-00. Obrgado pela paciência.
#8
Posted 13/01/2009, 22:58
$data_nasc = Convert_Data_Port_Ingl($_POST['data_nasc']);
Mas antes veja o que tem no $_POST['data_nasc']...
echo $_POST['data_nasc'];
Se não imprimir nada, talvez o campo da data no formulário tem outro nome.
E outra coisa, qual data você está colocando? Se for uma data que não existe como 31/02, realmente vai cadastrar 0000-00-00 no banco de dados.

Muller Dias
ex-administrador Fórum WMO
#9
Posted 14/01/2009, 21:08
[codebox]if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "cadastro")) {
$insertSQL = sprintf("INSERT INTO cadcli (nome, rua, num, bairro, cidade, UF, telefone, email, cep, data_nasc, data_instal, cpf, RG, id_ClienteFisico, data_Pagto, plano, banco) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['nome'], "text"),
GetSQLValueString($_POST['rua'], "text"),
GetSQLValueString($_POST['num'], "text"),
GetSQLValueString($_POST['bairro'], "text"),
GetSQLValueString($_POST['cidade'], "text"),
GetSQLValueString($_POST['UF'], "text"),
GetSQLValueString($_POST['telefone'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['cep'], "text"),
$data_nasc = Convert_Data_Port_Ingl($_POST['data_nasc']),
GetSQLValueString($_POST['data_instal'], "date"),
GetSQLValueString($_POST['cpf'], "text"),
GetSQLValueString($_POST['RG'], "text"),
GetSQLValueString($_POST['id_ClienteFisico'], "int"),
GetSQLValueString($_POST['data_Pagto'], "text"),
GetSQLValueString($_POST['plano'], "text"),
GetSQLValueString(isset($_POST['banco']) ? "true" : "", "defined","'Itaú'","'BB'"));
mysql_select_db($database_conection, $conection);
$Result1 = mysql_query($insertSQL, $conection) or die(mysql_error());
$insertGoTo = "sucesso.html";[/codebox]
mas o problema continua........
#10
Posted 14/01/2009, 22:41
$data_nasc = Convert_Data_Port_Ingl($_POST['data_nasc']),Tente substituir a linha acima por:
GetSQLValueString(Convert_Data_Port_Ingl($_POST['data_nasc']), "date"),

Muller Dias
ex-administrador Fórum WMO
#11
Posted 15/01/2009, 21:10
[codebox] GetSQLValueString(Convert_Data_Port_nasc($_POST['data_nasc']), "date"),
GetSQLValueString(Convert_Data_Port_instal($_POST['data_instal']), "date"), [/codebox]
e renomeei a função.
Está funcionando
abraço
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)