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
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 feliz.png
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" big_green.png
$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 wink.png
lembrando que eu nao testei isso, eu apenas digitei de cabeça nao_quero_nem_ver.png
por isso pode ser que tenha algum erro ou outro nao_quero_nem_ver.png
caso tenha, diga que eu arrumo big_green.png

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

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

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/
DragaO~
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal