Ir para conteúdo
Fórum Script Brasil
  • 0

Datas Em Formulários


Guest - Willian -

Pergunta

Guest - Willian -

Como eu faço para o visitante colocar uma data no formato DD/MM/AAAA em um determinado formulário para ela chegar no formato AAAA-MM-DD no banco de dados MySQL? Quero que o próprio visitante coloque esta data, como se fosse a data de nascimento ou um evento que vai acontecer.

Observação: o campo data do banco de dados deve estar no formato date mesmo.

É possível fazer isso?

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Yo,

Para isso você pode fazer uma função simples de leitura e escrita de datas.

Se você tem esses dois formatos e eles nunca mudam, basicamente você pode, na leitura, mudar banco>php e na escrita php>banco (uma flag pra isso, eu uso E e L (escrita e leitura)).

Como funcionaria.. você tem que basicamente trocar as coisas de lugar..

DD/MM/AAAA para AAAA/MM/DD

contando essa string, vai ficar:

d=0, d=1, /=2, M=3, M=4, /=5, A=6, A=7, A=8, A=9

montando..

dia recebe substr ( data , de 0 , quantia 2 )

mês recebe substr ( data , de 3 , quantia 2 )

ano recebe substr ( data, de 6 , quantia 4 )

escrevendo

ano / mês / dia

=) Pego a idéia?

D.Soul

Link para o comentário
Compartilhar em outros sites

  • 0

Yo,

^^" Então vou tentar escrever um código aqui.. supondo que a parte do formulário você já digitou e clicou em enviar o formulário.. e que o campo tinha nome "data".

$data = $_POST['data'];
// 07/03/2006 18:37:03 vira 20060307183703
$dia = substr ( $data , 0 , 2 );
$mês = substr ( $data , 3 , 2 );
$ano = substr ( $data , 6 , 4 );
$hora = substr ( $data , 11 , 2 );
$min = substr ( $data , 14 , 2 );
$sec = substr ( $data , 17 , 2 );
$final = $dia . $mês . $dia . $hora . $min . $sec;

Deu para entender a idéia agora?

D.Soul

Link para o comentário
Compartilhar em outros sites

  • 0

<?
function converte_data($data, $flag) {
  switch($flag) {
    case 'B': {
      $novadata = explode("/", $data);
      $novadata = array_reverse($novadata);
      $novadata = implode("-", $novadata);
    }; break;
    case 'U': {
      $novadata = explode("-", $data);
      $novadata = array_reverse($novadata);
      $novadata = implode("/", $novadata);
    }
  }
  return $novadata;
}
?>
Essa função leva em conta que, o flag B significa que irá converter para o formato do banco (YYYY-MM-DD) e U o formato do usuário (DD/MM/YYYY). Como usar:
<?
$data = converte_data($_POST[data], "B");
$sql = mysql_query(...);
?>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...