Como exibir datas dd/mm/aaaa?

Enviada por cristianopo 
cristianopo
Como exibir datas dd/mm/aaaa?
30 de September de 2005 às 04:40PM
Olá.

Estou obtendo uma data na tabela com campo em datetime (SQL SERVER) e, se for exibí-la diretamente, ele apresenta a data 31/08/2005 como 31 ago 2005. Já tentei com este comando:

$sqlcnpj = "SELECT Id_Pedido, data FROM teste_tab WHERE '".$testeid."' = Id_Pedido";
$result = mssql_query($sqlcnpj, $conexao);
$linha = mssql_fetch_array($result);
$data2 = $linha['data'];
print 'Data: '.date('d/m/y', $data2);

e ele me retorna: Data: 31/12/69 !!!

o que está acontecendo?
Já tentei a maioria dos scripts aqui postados e nada...

Agradeço a todos.
André Freitas
Re: Como exibir datas dd/mm/aaaa?
30 de September de 2005 às 05:47PM
cara, no sql server eu nao sei, mas no mysql existe o date_format, ele eh assim:
select ..., date_format(Nome_do_Campo, '%dd/%mm/%YY') as NomeDoAlise

a formatação dele eh:
%dd - dia
%mm - mes
%yy - ano de 4 digitos
%HH - horas
%ii - minutos
%ss - segundos

não sei se vai servir mas vale a pena tentar...

andré
Jonatas C. Damasceno
Re: Como exibir datas dd/mm/aaaa?
01 de October de 2005 às 03:39AM
usa essa função aqui:

function converte_data($data){
if (strstr($data, "/")){
$A = explode ("/", $data);
$V_data = $A[2] . "-". $A[1] . "-" . $A[0];
}
else{
$A = explode ("-", $data);
$V_data = $A[2] . "/". $A[1] . "/" . $A[0];
}
return $V_data;
}
Jonatas C. Damasceno
Re: Como exibir datas dd/mm/aaaa?
01 de October de 2005 às 03:41AM
vc mete o código anterior num arquivo 'funcoes.php'

na página q vai lista vc coloca

include("funcoes.php");

e depos é só colocar:

echo "Data de Nascimento: ". converte_data($linha['data_nascimento']). "<br>";

ou algo parecido
;)
André Freitas
Re: Como exibir datas dd/mm/aaaa?
01 de October de 2005 às 02:02PM
caralho, ter q criar uma função pra quebrar a string e depois concatena-la da forma correta podendo apenas fazer a consulta sql de forma correta... isso nao existe, fora de lógica...
Jonatas C. Damasceno
Re: Como exibir datas dd/mm/aaaa?
01 de October de 2005 às 02:39PM
eita.. take ie easy.
cara eu sou bem iniciante (nem 2 meses lidando com MySql) e só tentando ajudar cedendo o q eu sei.

eu ainda não sei fazer essa consulta sql corretamente

até pq até onde eu sei (e não é mto longe) no sql a data não fica gravada aaaa-mm-dd? como faz essa consulta?

desculpe minha sugestão sem lógica mas era o q eu sabia =/
bom sábado

;)
DAMXRN
Re: Como exibir datas dd/mm/aaaa?
02 de October de 2005 às 01:13PM
Andre Freitas, olha o RESPEITO com os caros que contribuem com suas dicas.

BEM, quanto a exibição da data no formato dd/mm/aaaa, faz o que o André Freitas postou que funciona perfeitamente (falo por experiência própria).

Ex.:


Consulta normal(desta forma a data de nascimneto seria exibida no formato aaaa/mm/dd)

SELECT nome, idade, data_nascimento FROM aluno;


Consulta com date_format(desta forma a data de nascimneto seria exibida no formato dd/mm/aaaa)

SELECT nome, idade, DATE_FORMAT(data_nascimento, '%dd/%mm/%YY') AS data_nas FROM aluno;

Ai na hora de exibir os dados vc não coloca o nome da coluna data_nascimento e sim data_nas.


DUVIDA? POSTA AI.
Alexsando
Re: Como exibir datas dd/mm/aaaa?
02 de October de 2005 às 11:10PM
Cristianopo,


Basta apenas mudar no date("m/d/y",$data2);

Para date("m/d/Y",$data2);

O Y maiuscula exibe a data com quatro digitos.

Valeu

Alexsandro
www.alexsandromachado.com
Cristianopo
Re: Como exibir datas dd/mm/aaaa?
03 de October de 2005 às 01:58PM
Obrigado a todos, primeiramente.
Quanto à função do Jonatas, já estou usando, mas não funcionou para este caso. O banco me retona o mês por abreviação (ago, por exemplo) e o date me retorna um valor errado para a data. No MS-SQL Server esta função DATE_FORMAT parece não existir ou não ser nesta sintaxe.
E quanto ao André Freitas, a sua ajuda é muito importante para a comunidade. Mas será mais prudente, da proxíma vez, ser mais educado, pois ninguém é obrigado a aceitar as palavras de baixo calão das quais você está acostumado a usar.
DAMXRN
Re: Como exibir datas dd/mm/aaaa?
05 de October de 2005 às 05:41PM
É ISSO AI Cristiano!!!!!!

Foi mal não prestei atenção achei que vc usava o MySQL. No MySql o date_format funciona primeira.
Caio Mancini
Re: Como exibir datas dd/mm/aaaa?
04 de November de 2005 às 09:35PM
Pessoal

Estou com um problema parecido:

Só que estou fazendo uma pesquisa e o usuário entra com dd/mm/aaaa e no banco MySQL está aaaa-mm-dd.

Tem como fazer isso com alguma função do SQL, MySQL ou vou usar a célebre (e extremamente funcional em muitos casos) função de inverter a string?

Obrigado comunidade.
Caio Mancini
Re: Como exibir datas dd/mm/aaaa?
04 de November de 2005 às 09:43PM
Mais uma coisinha...

quando implementei a função de nosso amigo de inverter tive o seguinte probleminha q não soube resolver:

Notice: Undefined offset: 2 in c:\kio\sites\casabella\funcao\funcao.php on line 9

Notice: Undefined offset: 1 in c:\kio\sites\casabella\funcao\funcao.php on line 9


O que vêm a ser isto.

tá o código ae novamente:

<?php
function converte_data($data) {
if (strstr($data, "/")) {
$A = explode ("/", $data);
$V_data = $A[2] . "-". $A[1] . "-" . $A[0];
}
else {
$A = explode ("-", $data);
$V_data = $A[2] . "/". $A[1] . "/" . $A[0];
}
return $V_data;
}
?>
cristianopo
Re: Como exibir datas dd/mm/aaaa?
24 de November de 2005 às 04:12PM
Ainda estou com o mesmo problema... será que não há como resolver?
André Freitas
Re: Como exibir datas dd/mm/aaaa?
24 de November de 2005 às 04:38PM
me manda ai tua consulta sql q eu dou um grau nela com o date_format
cristianopo
Re: Como exibir datas dd/mm/aaaa?
29 de November de 2005 às 05:52PM
Essa é a consulta:

// query para procurar pelo produto
$sqlean13 = "SELECT *
FROM Produto
WHERE '$ean13' = EAN13";

//executa a sentença SQL id e armazena o resultado em uma variável
$resultean13 = mysql_query($sqlean13, $conexao);
$linhaean13 = mysql_fetch_array($resultean13);

A exibição:

<tr>
<th class="style12" scope="row">&nbsp;</th>
<th class="style12" scope="row"><div align="left"><span class="style11">Data Vigor</span></div></th>
<td class="style12"><span class="style11">
<input name="DtVigor" type="text" class="style12" size="20" value="<? echo $linhaean13 ['DT_VIGOR']; ?>"></span></td>
</tr>

DT_VIGOR é o campo onde consigo gravar, mas na hora de exibir ele mostra (por exemplo) 2005-11-06 00:00:00 !!!

O que pode estar acontecendo?
Caio Mancini
Re: Como exibir datas dd/mm/aaaa?
29 de November de 2005 às 08:09PM
Companheiro

usa o campo no formato Date se for possível. Metade de seus problemas irão acabar. Isso se você não precisar de horas guardadas.

Depois, já que você usa o SQL Server usa isso na string SQL

.... where campo_data = convert(datetime, '".$variável_data."', 103)";

Isso se a $variável_data estiver em nosso padrão.

Eu já fiz isso antes quando trabalhava com o MS SQL Server 4. Hoje só trabalho com MySQL, espero que ajude em algo ou pelo menos te guiar.

E outra, a função date do PHP até agora só vi para mostrar a data atual e não para formatar uma data em um banco.
Para alterar o formato da data só manipulando a string como nossos amigos disseram anteriormente.
Falow.
cristianopo
Re: Como exibir datas dd/mm/aaaa?
01 de December de 2005 às 11:12AM
Mas os campos de data estão em datetime e agora estou trabalhando com o mysql também...

O que pode estar errado?
Caio Mancini
Re: Como exibir datas dd/mm/aaaa?
01 de December de 2005 às 07:14PM
Se possível altere para somente DATE.

assim eles ficarão no formato YYYY-mm-dd
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.