Jump to content


Photo

Problema Na Formatação De Data


  • Faça o login para participar
11 replies to this topic

#1 Hambonso

Hambonso

    12 Horas

  • Usuários
  • 124 posts
  • Sexo:Não informado

Posted 24/05/2005, 11:45

O meu problema é o seguinte, na minha tabela, eu defini alguns campo sendo tipo DATE, e o MYSQL por default definiu o formato de exibição como AAAA-MM-DD, tentei alterar isso direto nas propriedades do campo, mas não consegui, e toda as datas destes campo são exibidas nesse formato, mas eu queria fazer que as datas fossem exibidas e incluidas na tabela no formato DD/MM/AAAA, tentei via código fazer com que uma variável recebesse o valor da data no formato desejado usando o comando FORMAT_DATE(), mas não deu certo.
Como eu faço para que via código, eu atribuisse a uma variável qualquer o valor da Data no formato DD/MM/AAAA ?

Obrigado

#2 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 24/05/2005, 11:48

Use a busca por DATE_FORMAT.

http://www.w3.org/QA/Tips/iso-date
Klaus Paiva
Conheça também: Taperás

#3 Hambonso

Hambonso

    12 Horas

  • Usuários
  • 124 posts
  • Sexo:Não informado

Posted 24/05/2005, 12:30

Alguma coisa na nossa língua ?... pois infelizmente, mal falo o português corretamente, imagina então uma língua estrangeira !

#4 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 24/05/2005, 12:49

Use a busca por DATE_FORMAT.
Klaus Paiva
Conheça também: Taperás

#5 Rodrigo

Rodrigo

    oi!

  • Usuários
  • 995 posts
  • Sexo:Não informado
  • Interesses:Diretório de sites - http://www.acheinobrasil.com.br

Posted 24/05/2005, 14:11

eu recomendo a gravação da data no banco usando um campo int(8) e gravando no formato AAAAMMDD, pois isso facilita a organização por data, buscas e tudo mais.... dai vc faz uma função para arrumar a data para exibir na tela e outra pra gravar no banco ... ;)

#6 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 24/05/2005, 14:36

O DATE_FORMAT() deve ser usado na query SQL que pega a data no bd ...

$query=" SELECT *, DATE_FORMAT(data, '%d/%m/%Y')
as novadata
FROM tabela
ORDER BY data asc");

$cons_query =mysql_query($query)
OR die( mysql_error());

$y = mysql_fetch_array ($query);

$novadata = $y['novadata']

echo $novadata"<br />";


Onde "data" é o nome do campo de tipo "date" no seu banco de dados ...
Onde "novadata" é o apelido dado ao campo data formatado ...

Esse apelido é para não haver complicações depois na hora de ordenar por data ..

Mas aí já é uma outra questão ... (y)

Muito mais simples e fácil ... não acha ???


(y)Até mais

#7 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 24/05/2005, 14:39

Eu ainda prefiro armazenar em forma de timestamp num campo INTEGER.
Klaus Paiva
Conheça também: Taperás

#8 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 24/05/2005, 14:43

mas vc é o cara ... eu sou guri novo ... to aprendendo a facilitar pra mim...

mas claro que se pá vc tem motivos pra preferir devido a outras experiências que ainda não passei ...

Até seria interessante uma ex(?)planação destes motivos ...

para seus queridos pupilos não precisarem passar pela mesma dificuldade, passando a evolução a frente ..hauhauhaua

:lol:

Peguei pesado agora ... fme empolguei ...

Fala aí ...

ou é apenas uma questão de "co" ou "xxxxxx" = > stume ??

(y)Até mais

#9 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 24/05/2005, 14:53

Bom... Eu gosto de trabalhar com timestamps pois acho que fica mais fácil para executar cálculos...

Se quero somar mais um dia: + 86400
Se quero subtrair um dia: - 86400
Se quero mais dois: + 86400 * 2
Se quero menos dois: - 86400 * 2

Antes que alguém jogue um tijolo na minha cabeça... Não estou falando que não dá pra se fazer cálculos com aaaa-mm-dd, existe funções simples para isso: http://www.mysqlfrea...atements/53.php

Para formatar a data, se for timestamps, eu uso assim:

date ("d/m/Y", $timestamp);


Se fosse pelo SQL, seria com DATE_FORMAT: http://www.mysqlfrea...atements/59.php

Analisando, as maneiras são equivalentes. A única ressalva seria caso você use um SGBD que não tenha as funções de adicionar ou subtrair datas, se é que existe algum...
Klaus Paiva
Conheça também: Taperás

#10 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 24/05/2005, 17:02

Show "manu kalus" hehehe

Valeu a dica mesmo ...

Sempre bom novas possibilidades e saber o porque da mesma ...

Valeu mesmo ...

(y) Até mais

#11 Naruto

Naruto

    12 Horas

  • Usuários
  • 186 posts
  • Sexo:Não informado

Posted 12/03/2006, 17:01

Bom... Eu gosto de trabalhar com timestamps pois acho que fica mais fácil para executar cálculos...

Se quero somar mais um dia: + 86400
Se quero subtrair um dia: - 86400
Se quero mais dois: + 86400 * 2
Se quero menos dois: - 86400 * 2

Antes que alguém jogue um tijolo na minha cabeça... Não estou falando que não dá pra se fazer cálculos com aaaa-mm-dd, existe funções simples para isso: http://www.mysqlfrea...atements/53.php

Para formatar a data, se for timestamps, eu uso assim:

date ("d/m/Y", $timestamp);


Se fosse pelo SQL, seria com DATE_FORMAT: http://www.mysqlfrea...atements/59.php

Analisando, as maneiras são equivalentes. A única ressalva seria caso você use um SGBD que não tenha as funções de adicionar ou subtrair datas, se é que existe algum...

e se vc quisesse ordernar os resultados pela data mais recente?
uzumaki.naruto
-----------------------------------------------
"Eu não vou contra minhas palavras. Este é meu estilo ninja."
» Uzumaki Naruto

#12 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 12/03/2006, 17:07

e se vc quisesse ordernar os resultados pela data mais recente?

usando timestamp, basta selecionar no banco de dados da mesma forma que está e com um ORDER BY data DESC ( ou ASC, não tenho certeza :P )

Flws...
:DAté mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq