Ir para conteúdo

POWERED BY:

Arquivado

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

janick

[Resolvido] Data

Recommended Posts

Olá,

 

como funciona a lógica para definir que uma notícia esteja disponível em um site de tal data a tal data?

 

Fiz um sistema de administração de conteúdo e queria aplicar esta funcionalidade, criei um campo data início e data termino (não sei se é o mais correto para o caso), e salvo isso no banco de dados. Parei ai.

 

Se alguém puder me explicar, obrigado!

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há a possibilidade de usar a cláusula Between na sua SQL:

 

SELECT noticias FROM tabela WHERE campo_data BETWEEN 'data1' AND 'data2';

Leembrando que o campo de datas deve ser DATE ou DATETIME

 

Pelo PHP, você pode faezr a verificação usando timestamps retornados pela função strtotime().

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza,

 

mas a minha dúvida é porque eu tenho dois campos de data, 'data inicio' e 'data termino', e neste caso puxa somente de 'campo_data'. eu imagino que seja o correto, ok, mas como faria para gravar as duas datas dentro do mesmo campo?

 

valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas é o usuário do sistema que irá definir este intervalo,

criei um campo lá para ele digitar a data inicio (Ex. 01/02/07), e uma data término (Ex. 02/02/07).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para compara um intervalo de datas com o dia de "hoje" use...

 

soh compare a data de termino e deu...

SELECT * FROM noticias WHERE data_termino <= NOW()

 

 

tenta ae...

 

abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

ah beleza agora clareou!

 

só que a opção de o usuário gravar a data é no formato - DD/MM/AA - dei um print aqui no NOW, e retorna um numero totalmente insano. como ele vai fazer pra comparação com a data no formato DD/MM/AA? ou é melhor dar outra opção de formato de data para o usuario definir?

 

obrigado pela ajuda!

 

PS - Mas eu não salve em um só campo não. Salvei em dois campos - 'inicio', 'termino'

Compartilhar este post


Link para o post
Compartilhar em outros sites

O formato de data dos campos DATE é YYYY-MM-DD (ano-mes-dia) ou YYYY-MM-DD HH:MM:SS )ano-mes-dia hora-minuto-segundo).

 

Você deve fazer a conversão das datas para o formato do banco, para poder usar as funções de data e hora do banco de dados. Use explode().

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui formatar a data para salvar no banco de dados e para retornar quando for editar,

preciso fazer este explode para comparar a data aqui também?

 

SELECT * FROM noticias WHERE data_termino <= NOW()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve converter antes de inserir no banco, pois, se a data não estiver no formato aceito pelo campo DATE/DATETIME, será retornado um erro.

 

Veja estes links:

http://forum.imasters.com.br/index.php?sho...e+array_reverse

http://forum.imasters.com.br/index.php?s=&...st&p=754659

http://forum.imasters.com.br/index.php?sho...e+array_reverse

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza consegui converter, o problema é na hora de montar o select, não está funcionando:

 

SELECT * FROM noticias WHERE data_termino <= NOW()

Compartilhar este post


Link para o post
Compartilhar em outros sites

os campos data_inicio e data_termino está como tipo DATE ?

 

 

pega o valor da data de hoje pelo php

PHP
$data_hoje = date('Y-m-d');

 

e no select faz assim para não mostrar as datas_inicio que forem maior que a data de hoje também...

SELECT * FROM noticias WHERE data_inicio <= '$data_hoje' AND data_termino <= '$data_hoje'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, consegui!!

 

mas fazendo o select desta maneira

 

$sql = mysql_query("SELECT * FROM noticia WHERE inicio <= NOW() AND termino >= NOW()");

 

Muito obrigado pela ajuda!!!

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.