Logo Hardware.com.br
chamuska
chamuska Veterano Registrado
1.4K Mensagens 16 Curtidas

Duvida com data em php e mysql

#1 Por chamuska 08/09/2008 - 02:53

Dae galera, blz??!!
Entao, tenho q fazer q uma pagina em php pegue a data e fique com o formato dd/mm/yyyy, eu achei na net uns codigos, mas tds imprimem o mes com o nome e nao com o numero.
E como que eu devo criar la no BD um campo pra data, qual o tipo dela e quantos caracteres ela deve ter???
To aprendendo sql, dai nao manjo muito!!


vlws

Responder Tópico
OoDragooNoO
OoDragooNoO Geek Registrado
3.5K Mensagens 61 Curtidas
#3 Por OoDragooNoO
08/09/2008 - 11:44

chamuska disse: Dae galera, blz??!!
Entao, tenho q fazer q uma pagina em php pegue a data e fique com o formato dd/mm/yyyy, eu achei na net uns codigos, mas tds imprimem o mes com o nome e nao com o numero.
E como que eu devo criar la no BD um campo pra data, qual o tipo dela e quantos caracteres ela deve ter???
To aprendendo sql, dai nao manjo muito!!


vlws

o modo correto de fazer isso eh utilizar no banco um campo do tipo "date", mas ele espera o formato "yyyy/mm/dd", portanto, tu vai ter que fazer mais ou menos o seguinte :

formulario.php

<form action="valida.php" method="post">
data : <input type="text" name="data">
</form>
essa parte sem muita frescura
agora o arquivo que vai "tratar" os dados do formulario

[php]
//data no formato "dd/mm/aaaa"
$data = $_POST['data'];
//atribuindo o total de caracteres à uma variavel
$total = strlen($data);
//percorrendo o que a pessoa digitou
for($cont = 0; $cont < $total; $cont++)
{
//a unica coisa que nos interessa sao os numeros, portanto, vamos descartar tudo que nao seja numero
if(is_numeric($data[$cont]))
{
//concatenando os valores à uma variavel auxiliar
$temp .= $data[$cont];
}
}
//recebendo novamente a data, somente com numeros
$data = $temp;

//a data deve conter apenas numeros, portanto, o tamanho dele deve ser 8 (dd + mm + aaaa)
if(strlen($data) != 8)
{
echo "digite uma data valida";
exit();
}
//se tiver 8 digitos, devemos verificar se ela eh valida
//recebendo o dia informado
$dia = $data[0].$data[1];
//recebendo o mes informado
$mes = $data[2].$data[3];
//recebendo o ano informado
$ano = $data[4].$data[5].$data[6].$data[7];
//verificando se a data existe
if(!checkdate($mes, $dia, $ano))
{
echo "Data invalida, informe uma data valida";
exit();
}
//se a data for valida, devemos inseri-la no banco no formato "dd/mm/aaaa", por isso vamos "converte-la"
$nova_data = $dia."/".$mes."/".$ano;

//caso queira ver o resultado, basta descomentar a linha abaixo
//echo $nova_data;

//...continuaçao do codigo
[/php]tentei fazer o mais "mastigado" possivel, pois nao sei teus conhecimentos sobre PHP
lembrando que eu nao testei isso, eu apenas digitei de cabeça
por isso pode ser que tenha algum erro ou outro
caso tenha, diga que eu arrumo

mas acho que eh mais ou menos isso
tambem poderia ser feito a mesma coisa utilizando a funçao "explode()", mas eu acho mais facil e seguro fazer desse modo
porem sinta-se livre para fazer com "explode()", caso queira

precisa tambem algo sobre SQL ou tu consegue ?
se precisar, a gente te ajuda com a inserçao na tabela

referencia das funçoes :
is_numeric : http://br2.php.net/manual/pt_BR/function.is-numeric.php
strlen : http://br2.php.net/manual/pt_BR/function.strlen.php
checkdate : http://br.php.net/manual/pt_BR/function.checkdate.php
explode : http://br.php.net/manual/pt_BR/function.explode.php

flw xD/

Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.