Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafasemed

data de nascimento

Recommended Posts

gostaria de saber como trabalhar com data !!!!

 

tenho um campo inputtype e gostaria de ter uma regra que quando as pessoas fossem digitar a data ela colocasse o numero e ja tivesse pre formatado assim / / / as barras separando dia mes e ano nos numeros , e o que eu ponho no arquivo que grava no bando de dados , e para visualizar , se alguem puder me ajudar agradeço , muito obrigado amigos , vcs tem me ajudado muito .

Compartilhar este post


Link para o post
Compartilhar em outros sites

JavaScript, Nao PHP.

Mas vou te ajudar.

Primeiro a função javascript:

 

<script type='text/javascript'>
function MascaraData(obj) 
{
   switch (obj.value.length) 
   {
      case 2:
           obj.value = obj.value + "/";
           break;
      case 5:
           obj.value = obj.value + "/";
           break;
   }
}
</script>

E no Input Type assim:

 

<input type='text' name='data_nascimento' maxlength='10' size='14' onKeyPress='MascaraData(this);'>

Isso vai acontecer na hora da digitação, testa ae!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao.

Fazendo assim você está colocando a data atual.

Pra você gravar no banco de dados, você faz normalmente como vai fazer com todas as outras informações.

você tem o Formulário e a Página PHP que vai receber as informações neh ??

 

Dae você pega a Data de Nascimento:

$data_nascimento = $_POST['data_nascimento']; 

Dae você coloca assim no Insert:

INSERT INTO TABELA(DATA_NASCIMENTO) VALUE(CONVERT(DATETIME,'$data_nascimento',103))

Observe que isto é só um exemplo! =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

ficou um puco confuso o lan do value para mim o meu arquivo inset esta assim :

 

<?php

$host = "localhost";
$usuario = "root";
$senha = "";
$database = "banco";

$conexao = mysql_connect($host, $usuario, $senha);
mysql_select_db($database, $conexao);


$sgl = mysql_query("SELECT * FROM pt"); // codigo sgl que seleciona a tabela com os dados   
while($dados = mysql_fetch_array($sgl)) //comando que coloca num array todos os registros existentes na tabela    



$nome = $_POST["nome"];   
$data_nascimento = $_POST['data_nascimento']; 
$opcao = $_POST["opcao"];   
$end = $_POST["end"];
$bairro = $_POST["bairro"];   
$municipio = $_POST["municipio"];  
$estado = $_POST["estado"];
$cep = $_POST["cep"];   
$titulo = $_POST["titulo"];
$zona = $_POST["zona"];   
$secao = $_POST["secao"];
$cpf = $_POST["cpf"];   
$email = $_POST["email"];  
$tel = $_POST["tel"];
$cel = $_POST["cel"];   
$cargo = $_POST["cargo"];  
$nivel = $_POST["nivel"];


$sgl = "INSERT into pt (nome, date, opcao, end, bairro, municipio, estado, cep, titulo, zona, secao, cpf, email, tel, cel, cargo, nivel) values ('$nome','$data','$opcao','$end','$bairro','$municipio','$estado','$cep','$titulo','$zona','$secao','$cpf','$email','tel','$cel','$cargo','$nivel')";   
mysql_query($sgl); //executa a query 
echo"<script>location='cadastroescola.php';alert('Inserido com Sucesso!');</script>";  

?>  

 

outra duvida

devo por no meu bando mysql datatime

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você colocar a data assim, ela vai ficar como uma string. O correto é gravar como formato DATE e no padrão Mysql (AAAA-MM-DD). Para transformar de um formato para outro, você pode usar uma função do André D. Molin, que tem no laboratório de scripts.

 

http://forum.imasters.com.br/index.php?/topic/361977-funcao-para-converter-datas-do-mysql-e-vice-versa/

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim...

<?php
/**
* Função que converte uma data de YYYY-MM-DD para DD/MM/YYYY e vice-versa.
* O tipo da data é automaticamente detectado. Caso não seja nenhum dos dois, a função
* retorna uma mensagem de erro.
*
* @author André D. Molin <contato@dmolin.com.br>
* @version 1.2
* @since 02/09/2009
*
* @string $data (YYYY-MM-DD ou DD/MM/YYYY)
*/

    function ConverterDataDB ($data) {
    
        $patternBr    = "^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)[0-9]{2}^";
        $patternMySQL = "^(19|20)[0-9]{2}[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])^";
        
        if ( preg_match($patternBr, $data, $matchesBr) === 1 ) {
            
            if ( checkdate($matchesBr[1], $matchesBr[0], $matchesBr[2]) ) {
            
                trigger_error('A data '.$data.' é inválida', E_USER_ERROR);
            
            }
            
            $output = implode('-', array_reverse(explode('/', $data)));
            
        } elseif ( preg_match($patternMySQL, $data, $matchesMySQL) === 1 ) {
        
            if ( checkdate($matchesMySQL[1], $matchesMySQL[2], $matchesMySQL[0]) ) {
            
                trigger_error('A data '.$data.' é inválida', E_USER_ERROR);
            
            }
        
            $output = implode('/', array_reverse(explode('-', $data)));
            
        } else {
        
            trigger_error('A data '.$data.' é inválida', E_USER_ERROR);
            
        }
        
        return $output;
    
    }
    
?>
$data_nascimento = ConverterDataDB($_POST['data_nascimento']);

Só isto... Desde que o campo da data esteja como DATE no Mysql.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloquei assim mais tha dando error

 

Notice: Undefined index: data_naiscimento in C:\wamp\www\b\index.php on line 48

 

Notice: Undefined variable: date in C:\wamp\www\b\index.php on line 52

 

que erro é esse ?

 

<?php

$host = "localhost";
$usuario = "root";
$senha = "";
$database = "banco";

$conexao = mysql_connect($host, $usuario, $senha);
mysql_select_db($database, $conexao);


$sgl = mysql_query("SELECT * FROM teste"); // codigo sgl que seleciona a tabela com os dados   
while($dados = mysql_fetch_array($sgl)) //comando que coloca num array todos os registros existentes na tabela    

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Documento sem título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<form method="POST">

<p>
<input type='text' name='data_nascimento' maxlength='10' size='14' onKeyPress='MascaraData(this);'>
<input name="submit" type="submit" value="Enviar" /> 
</form>

<script type='text/javascript'>
function MascaraData(obj) 
{
  switch (obj.value.length) 
  {
     case 2:
          obj.value = obj.value + "/";
          break;
     case 5:
          obj.value = obj.value + "/";
          break;
  }
}
</script>
<?php

$data_naiscimento = $_POST["data_naiscimento"]; 



$sgl ="INSERT INTO teste (data_naiscimento) VALUES ('$data_naiscimento')";
mysql_query($sgl); //executa a query 


?>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu name do input da data de nascimento

<input type='text' name='data_nascimento' maxlength='10' size='14' onkeypress='MascaraData(this);'>

agora o seu POST

$data_naiscimento = $_POST["data_naiscimento"]; 

Ta certo isso ?? olha como você escreveu.

 

E outra, você ta fazendo tudo na msm página, inicialmente o POST vem vazio.

Por isso dá esse erro ae!

Compartilhar este post


Link para o post
Compartilhar em outros sites

separei as paginas mesmo assim não funciona , agora não esta funcionando nada !!!

 

index

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Documento sem título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<form action="gravar.php" method="post">

<p>
<input type='text' name='data_nascimento' maxlength='10' size='14' onKeyPress='MascaraData(this);'>
<input name="submit" type="submit" value="Enviar" /> 
</form>

<script type='text/javascript'>
function MascaraData(obj) 
{
  switch (obj.value.length) 
  {
     case 2:
          obj.value = obj.value + "/";
          break;
     case 5:
          obj.value = obj.value + "/";
          break;
  }
}
</script>


</body>
</html>

gravar.php

<?php
$host = "localhost";
$usuario = "root";
$senha = "";
$database = "banco";

$conexao = mysql_connect($host, $usuario, $senha);
mysql_select_db($database, $conexao);


$sgl = mysql_query("SELECT * FROM teste"); // codigo sgl que seleciona a tabela com os dados   
while($dados = mysql_fetch_array($sgl)) //comando que coloca num array todos os registros existentes na tabela    


$data_nascimento = $_POST["data_nascimento"]; 



$sgl ="INSERT INTO teste (data_nascimento) VALUES (convert(datetime,'$data_nascimento',103))";
mysql_query($sgl); //executa a query 


?>

ajuda por favor !!!!

 

 

agora esta dando um erro :

Notice: Undefined variable: data_nascimento in C:\wamp\www\b\gravar.php on line 19

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara descobri que o error 19 esta no lance do converte :

 

$sgl ="INSERT INTO teste (data_nascimento) VALUES (convert(datetime,'$data_nascimento',103))";

 

 

eu coloquei $sgl ="INSERT INTO teste (data_nascimento) VALUES ('$data_nascimento')";

 

 

e enviou para meu banco de dados só que a hora no banco aparece 0000-00-00

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está errado os eu gravar.php, agora que vii..

faça assim:

 

<?php
$host = "localhost";
$usuario = "root";
$senha = "";
$database = "banco";

$conexao = mysql_connect($host, $usuario, $senha);
mysql_select_db($database, $conexao);

$data_nascimento = $_POST["data_nascimento"]; 

$sgl ="INSERT INTO teste (data_nascimento) VALUES ('$data_nascimento')";
mysql_query($sgl); //executa a query 

?>

Não precisa do While, nem do Select.

E outra, quando der erro, poste o erro aqui, fica mais facil para todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um exemplo legal de mascara de campo com Jquery

 

http://digitalbush.com/projects/masked-input-plugin/

 

e Datepiker

 

http://jqueryui.com/demos/datepicker/

 

você manda a data pro php no formato brasileiro dd/mm/yyyy

 

e basta converter para salvar no banco no padrao DATE

 

<?php
$data = '18/05/1977';
$data = implode('-', array_reverse(explode('/', $data)));
echo $data;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

pow galera quero tirar uma duvida e vcs me poe mais outras , por favor se alguem puder postar ai concreto pq ja vi que tha f*** pra eu entender isso pensei que isso fosse algo mais simples por favor se alguem puder poasta algo ai para mim

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.