Obter A Data A Partir Do Mysql
#1
Posted 05/11/2007, 12:02
O estranho é que a data só retorna 31/12/1969
Sendo que se uso o Query Browser a data está certinha, mas basta carregar no PHP que exibe como 31/12/1969
Alguém tem uma luz?
[]'s André Milaré
#2
Posted 05/11/2007, 12:18
Qual a configuração do campo, no BD? DATE? DATETIME?
Mostre o script que monta a data pra gente.
[]´s
#3
Posted 06/11/2007, 20:02
Não me lembro bem, mas, acho que o formato unix começou a partir deste ano ai, o que causa isso normalmente é a ordem dos valores na hora de gravar na tabela...1969
Mas se na tabela está certo então, você deve estar usando algum script que esta recebendo os valores erroneamente e daí ele retorna a data errada.
Falopa!
#4
Posted 07/11/2007, 02:50
Até mais
#5
Posted 07/11/2007, 09:11
xxxx - xx - xx
você tem que converter pra que seja exibida no formato brasileiro:
xx - xx - xxxx
CASSIANODESIGNER.COM - Desenvolvimento Web
#6
Posted 07/11/2007, 10:01
Eu guardo na variavel $strDataCompra o que é informado pelo usuário. Quando mando gravar eu tentei a função
date("Y/m/d", $strDataCompra)daí já tinha visto que grava no banco 1969-31-12, então abandonei a função date() e simplesmente gravei direto, daí deu certo.
E ao recuperar a informação (como o Cassiano comentou) vem com AAAA-MM-DD e quando utilizo a função de formatação, aparece o bendito 31/12/1969 -formatado com date()
Eu venho do ASP e tem diversas funções para formatar... o PHP eu vi date() e date_format(), porém o date_format() não funciona e estou usando PHP 5.1 o que fiz (mas não acho certo) foi concatenar na mão do formato AAAA-MM-DD para DD/MM/AAAA.
Existe alguma maneira mais simples de gravar e ler datas no formato que queremos sem usar função pessoal? Pois corremos o perigo de gravar uma data do tipo 12/10/2007 e ao recuperar teremos o mês de dezembro...
Obrigado a todos
[]'s André Milaré
Edição feita por: André Milaré, 07/11/2007, 10:03.
#7
Posted 07/11/2007, 14:17
Para formatar, é só usar na query o DATE_FORMAT();
Exemplo:
SELECT *, DATE_FORMAT(data, '%d/%m/%Y') AS data FROM cliente
Utilização:
$sql = mysql_query("SELECT *, DATE_FORMAT(data, '%d/%m/%Y') AS data FROM cliente") or die(mysql_error()); $c = mysql_fetch_array($sql); echo $c['data'];Para maiores informações:
http://dev.mysql.com...ion_date-format
Até mais
Edição feita por: _Dudu_1533, 07/11/2007, 14:22.
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador
Twitter: HostCheap
#8
Posted 08/11/2007, 08:54
Mas apenas para saber e encerrar o tópico, o PHP não tem função para formatação de datas? Pois o que está sugerido é que a data tem que vir formatada a partir da função do MySQL e não do PHP, confere?
Obrigado pela ajuda e colaboração de todos!
[]'s André Milaré
PS: O comando date_format no MySQL funcionou!
#9
Posted 08/11/2007, 09:17
brincadeira
Da uma olhada nesse link aí
Até mais
canaldev.com.br
sistemabasico.com.br
twitter.com/sistemabasico
twitter.com/lunelli
#10
Posted 08/11/2007, 16:38
para formatar uma data HOJE, blz! funciona que nem um reloginho
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm $today = date("m.d.y"); // 03.10.01 $today = date("j, n, Y"); // 10, 3, 2001 $today = date("Ymd"); // 20010310 $today = date('h-i-s, j-m-y, it is w Day z '); // 05-16-17, 10-03-01, 1631 1618 6 Fripm01 $today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // It is the 10th day. $today = date("D M j G:i:s T Y"); // Sat Mar 10 15:16:08 MST 2001 $today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:17 m is month $today = date("H:i:s"); // 17:16:17
Mas se vc JÁ tem a bendita data, tipo:
$strSQL = "SELECT DataCompra FROM tabproduto "; $strRecordSet = mysql_query($strSQL, $strConexao) or die("Ocorreu um erro ao acessar o banco de dados. Erro: <br>".mysql_error()); $Registro = mysql_fetch_array($strRecordSet); // Guardar a data $strDataCompra = $Registro["DataCompra"]; // Aqui o bicho pega echo date("d/m/Y", $strDataCompra);
Sabe o que aparece? 31/12/1969
Não foi preguiça de pesquisar não, até com date_format() eu tentei, mas só funcionou mesmo no MySQL...
Por isso que eu quero saber: TEM ALGUM COMANDO PHP QUE FORMATE DATA? rsrs
[]'s André Milaré
#11
Posted 08/11/2007, 16:44
Estou achando que seu problema é literalmente mais em cima...
Quando você retorna a data sem tentar formata-la como é que ela aparece?
Falopa!
#12
Posted 08/11/2007, 16:49
Molaré forçou a amizade...rsrs
[]'s André Milaré
Edição feita por: André Milaré, 08/11/2007, 16:50.
#13
Posted 08/11/2007, 17:02
Quem disse que somos amigos?Molaré forçou a amizade...rsrs
Imagino que você deve estar formatando a data na consulta e depois está tentando formata-la usando a função date() se for isso é só remover a função date() do teu código.
Se não for o caso anterior, então posso afirmar com toda certeza que você alterou alguma configuração do servidor, como por exemplo set_locale() ou alguma parente dela , enfim, alterar as configurações "NUM PODE..."
Ainda assim dá pra você formatar a data diretamente no mysql.
http://forum.wmonlin...&...st&p=880498
Falopa!
#14
Posted 08/11/2007, 17:45
function data($data){ $data=substr($data,8,2).'/'.substr($data,5,2).'/'.substr($data,0,4); return $data; }
www.pirenopolis.tur.br - O Portal de Turismo de Pirenópolis
Comida típica goiana é no www.arrozcompequi.com.br
#15
Posted 08/11/2007, 18:10
A forma com que você grava a data no banco determina a forma com qual você vai exibir.
Logo se você gravar a data com campo do tipo "DATE" a função "date()" não vai servir pois ela trabalha com TimeStamp ...
* TimeStamp = é soma dos segundos desde o dia em que o formato unix foi ativado ou seja "31/12/1969" até os dias atuais.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)