Jump to content


Photo

Inserindo Data Em Php


  • Faça o login para participar
10 replies to this topic

#1 rafaelcastro

rafaelcastro

    12 Horas

  • Usuários
  • 294 posts
  • Sexo:Masculino
  • Localidade:Dourados/MS

Posted 21/09/2005, 21:22

Tenho um form. Joguei um text field para inserir a data.
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 henriquefr

henriquefr

    12 Horas

  • Usuários
  • 209 posts
  • Sexo:Não informado
  • Localidade:Cuiabá-MT
  • Interesses:PHP, Ajax e JavaScript.

Posted 21/09/2005, 22:44

$data = "2005/12/31";

echo substr($data,8,2).".".substr($data,5,2).".".substr($data,0,4);
//resultado = 31/12/2005

neste caso .. vc tem q mandar a data em ingles ... igual no exemplo...
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.

<?php

?>

#3 rafaelcastro

rafaelcastro

    12 Horas

  • Usuários
  • 294 posts
  • Sexo:Masculino
  • Localidade:Dourados/MS

Posted 21/09/2005, 22:52

Grande Henrique... Manda esse script pra mim...

Vou tentar entendê-lo

Abraço

Rafael
Dourados/MS

#4 henriquefr

henriquefr

    12 Horas

  • Usuários
  • 209 posts
  • Sexo:Não informado
  • Localidade:Cuiabá-MT
  • Interesses:PHP, Ajax e JavaScript.

Posted 21/09/2005, 23:09

aki ele pega a data no portugues para o ingles ...

function Convert_Data_Port_Ingl($entradata){
    $conv1 = explode("/",$entradata);
    $conv2 = array_reverse($conv1);
    $saidata = implode("-",$conv2);
    return $saidata;
}

tipo ... para inserir faz assim ...
$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 ...

function Convert_Data_Ingl_Port($entradata){
    $conv1 = explode("-",$entradata);
    $conv2 = array_reverse($conv1);
    $saidata = implode("/",$conv2);
    return $saidata;
}

aki vc faz assim:
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.

<?php

?>

#5 lomaster

lomaster

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Não informado

Posted 12/01/2009, 20:49

desculpem-me por reativar um post antigo , mas estou sofrendo com este negócio de data.

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 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 13/01/2009, 00:53

Não é uma função javascript, é uma função php, você deve colocar a função dentro das tags php:

<?php
function Convert_Data_Port_Ingl($data_nasc){
	$conv1 = explode("/",$data_nasc);
	$conv2 = array_reverse($conv1);
	$saidata = implode("-",$conv2);
	return $saidata;
}
?>

att,
Muller Dias
ex-administrador Fórum WMO

#7 lomaster

lomaster

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Não informado

Posted 13/01/2009, 21:28

Colega, boa noite!

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 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 13/01/2009, 22:58

Tente assim:

$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.

(ok2)
att,
Muller Dias
ex-administrador Fórum WMO

#9 lomaster

lomaster

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Não informado

Posted 14/01/2009, 21:08

Colega , meu código está assim
[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 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 14/01/2009, 22:41

Creio que você deve dançar conforme a música.

$data_nasc = Convert_Data_Port_Ingl($_POST['data_nasc']),
Tente substituir a linha acima por:

GetSQLValueString(Convert_Data_Port_Ingl($_POST['data_nasc']), "date"),

(ok2)
att,
Muller Dias
ex-administrador Fórum WMO

#11 lomaster

lomaster

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Não informado

Posted 15/01/2009, 21:10

inseri da seguinte maneira:

[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)

IPB Skin By Virteq