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

Data =/


thiago_2002

Pergunta

8 respostass a esta questão

Posts Recomendados

  • 0

pow. mas que comlicar?? você pode simplesmente inserir com a data com esses tracinhois.. não vai dar problema.. mas se quiser tirar enfim.. faz um str_replace pra tirar os tracinhos.. depois pra mostra com os tracinhos dá pra usar o sbstr dai com o substr você faz qts vezes achar necessario.. tipo. .splita a string.. sacou??

falow..

Link para o comentário
Compartilhar em outros sites

  • 0

Um campo do tipo Date do banco deve ser salvo no formato Y-m-d (2005-06-15) no banco.

Para trazê-lo de volta formatado como 15/05/2005 eu ainda não consegui fazer mas provavelmente você vai usar (d/m/Y) na função date();

Link para o comentário
Compartilhar em outros sites

  • 0

Ao invés de um campo de texto, você pode colocar um campo select para os dias (com name="dia" e value de 01 à 31), um campo select para o mês (com name="mes" value= 01, 02, 03 ... 12 e os valores de option=Janeiro, Fevereiro etc) e um campo de texto para ele colocar a data.

Você define as variáveis para data assim:

$data = "$ano$mes$dia";

Insere assim no banco de dados. Quando você fizer a consulta para buscar algo entre as datas fica fácil.

Pode colocar um outro campo data que seria a retornada na consulta do usuário. Aí você definiria o campo data_usuario:

$data_usuario = "$dia - $mes - $ano";

Insere no banco de dados e, quando for para mostrar ao usuário, você pede para mostrar esse campo.

Com certeza tem formas melhores de fazer, mas eu nào sei como. Acredito que dessa forma que coloquei acima você consiga o resultado esperado sem ser uma gambiarra. wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Você define as variáveis para data assim:

$data = "$ano$mes$dia";

isso tá errado. tem que ter os pontos entre as vars...

concatenação de string precisa de um operador de concatenação certo??

falow..

Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade ele deveria gravar os datos utilizando o formato DATE do mysql, ou seja padrão, 0000-00-00...

No campo digitado da data a pessoa coloca normal 16-06-2005 atens de gravar você trata com array_reverse... tipo

$data_grava = implode("-", array_reverse(explode("-", $data)));

//ISTO VAI COLOCAR A DATA NO FORMAT MYSQL

Para visualizar utiliza a mesma coisa, coletando a data do banco...

Quanto a pesquisa entre datas utiliza o BETWEEN que é justamente para isso...

$sql = mysql_query("SELECT * FROM TABELA WHERE campo_data BETWEEN '$data_inicial' AND '$data_final' ORDER by campo data ASC");

Adailton

Link para o comentário
Compartilhar em outros sites

  • 0

Se precisa de concatenação, então tem que ser assim:

$data = $dia . "" . $mes . "" . $ano;

Agora, como eu falei, certamente tem formas mais corretas de fazer, e parece que o Adaílton deu o caminho das pedras.

Como estou no começo do php, nunca usei implode, array_reverse, nem a BETWEEN no mysql. Mas parece que é isso mesmo.

Agora é só você fazer os testes. wink.gif

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
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...