Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

squid

Data e Hora

Recommended Posts

Ae pessoalE aí, pessoal.Preciso pegar a data e hora do sistema, a função q estou usando esta pegando, mas tenho q listar determinado item de acordo coma data e hora, tipo mostrar somente se o dia e hora de hoje e superior ao dia e hora do q tenho q listar, o problema é q se tenho um item com o dia superior mas a hora inferior ele lista, já q a hora e inferior a do sistema.Já usei date e getime.Alguem pod me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está usando MySQL? porque é diferente o tratamento de datas com MySQL e PHP

Compartilhar este post


Link para o post
Compartilhar em outros sites

então você tem que usar o campo específico pra data do MySQL, acho que é o formato DATETIME, e usa a cláusula ORDER BY `nome_do_campo` para ordenar na hora de exibir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apesar daquele baita texto não sei se me expliquei direito, preciso fazer um controle para exibir determinado dado, apenas se a hora e data forem inferior a data e hora atual.não consigo fazer um controle dos dois juntos, estou fazendo o seguinte teste:$data_atual = date('Y/m/d');$hora_atual = date("H:i:s");$strQuery = "SELECT * FROM tbl WHERE dado_abertura < '$data_atual'";se ponho: and dado_hora < '$hora_atual'ele mostra um item q esta com a hora inferior a data atual, mas q a data ainda não passou.Alguém pode me ajudar, por favor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, por coincidencia eu to montando um sistema parecido com o seu :D você pode usar o AND pra poder filtrar mais precisamente, por exemplo, no sistema que eu to montando eu to usando o seguinte:SELECT * FROM tabela WHERE tabela.data <= CURDATE() AND tabela.hora < SUBTIME(NOW(), '00:30:00')aqui ele vai listar todos os registros em que a data seja menor ou igual à data de hoje e que tiverem a hora menor que a data atualentao ai ja elimina de puxar os outros registros que tenham a data acima da atual e filtra os registros com a hora que eu precisoé facil!! :P se nao entender, nao hesite em perguntar!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Explico sim!! :P

Bom primeiramente eu recomendaria que você usasse MySQL 4.1.1 ou maior porque foi a partir dessa versão que as funções de data e hora foram aprimoradas e você pode fazer adição e subtração de datas, horas e períodos...

 

Certo, vamos lá:

 

- CURDATE() pega a data atual;

 

Ex:

SELECT CURDATE();

-> '2005-02-16'

 

- NOW() pega a hora atual

 

- SUBTIME('expr1', 'expr2') subtrai o valor da expr1 pelo valor de expr2;

 

Ex:

SELECT SUBTIME('12:00:00', '00:30:00');

-> '11:30:00'

 

o meu select é o seguinte:

 

SELECT * FROM tabela WHERE tabela.data <= CURDATE() AND tabela.hora < SUBTIME(NOW(), '00:30:00')

 

azul: seleciona todos os registros que forem menores ou iguais à data atual, por exemplo, hoje é dia 2005-02-16, então ele não vai puxar os registros que tem a data de amanhã ou dos dias superiores

 

vermelho: seleciona todos os registros que tiverem a hora 30 minutos a menos que a hora atual, por exemplo, agora é exatamente 12:00:00, então é listado somente os registros que tiverem a hora menor que 11:30:00... se no registro tiver 11:30:01 ele já não mostra.

 

então...

 

SELECT * FROM tabela WHERE dados do campo data são menores ou iguais que a data atual E dados do campo hora são menores que a hora atual, menos 30 minutos

 

Bom, se não entender qualquer parte, é só perguntar!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha só da o seguinte erro:You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(NOW(), '00:30:00')' at line 1 as outras funçoes q eu esta usando, como date e getdate esta pegando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai velho nao sei se pode te ajudar a resolver teu problema mais vamos la

 

PHP [/tr][tr]<?

$datatual = date("Y");

 

$sql="select * from curriculo where date_format(data_DB,'%Y') LIKE '$datatual' order by nome";

$sql_res = mysql_query($sql,$conexao) or die ("Não foi possível executar a consulta por Idade .");

 

//No meu exemplo assim ele compara se o ano é igual ao do banco

 

?>

[/tr]

 

PHP [/tr][tr]<?

$datatual = date("Y");

 

$sql="select * from curriculo where date_format(data_DB,'%Y') < '$datatual' order by nome";

$sql_res = mysql_query($sql,$conexao) or die ("Não foi possível executar a consulta por Idade .");

 

//No meu exemplo assim ele compara se o ano é Menor ao do banco

 

?>

[/tr]

 

 

Na minha opinão deve ser por ai nao sei acho que para a hora deve ser a mesma coisa

 

Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

To precisando de um esquema parecido, preciso fazer um select de um registro (video) que tem hora inicial e hora final, o select desse video só devera ser feito quando a hora atual estiver entre a hora inicial e hora final como fazer isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.