Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom, vi que muita gente precisa de trabalhar com datas que vêm do banco de dados, eu muitas vezes também preciso.
Hoje fui dar uma lida no manual do mysql, e vi que ele tem boas, muito boas funções para manipulação de datas.
Procure no manual por TO_DAYS, FROM_DAYS, SEC_TO_TIME e TIME_TO_SEC.
Muita gente sem conhecer essas funções convertem as datas para números, ou criam três campos diferentes para a data, para assim conseguirem fazer a soma com php.
Abaixo deixo um exemplo simples (simples mesmo, 15minutos :P) de uma agenda de eventos.....
Não encontrei nada no fórum que falasse sobre essas funções, então acho que será de grande utilidade conhecê-las.
Editado: Se o mané aki tivesse feito uma simples busca por TO_DAYS na busca do fórum teria encontrado uma porrada de posts... :P Mas td bem, fica a dica para fazer a procura antes de postar exemplos tbm....
segue a agenda de eventos:
tabela e alguns eventos:
CREATE TABLE IF NOT EXISTS eventos( id tinyint NOT NULL auto_increment, data DATE NOT NULL DEFAULT "0000-00-00", evento VARCHAR(200) NOT NULL, primary key (id))auto_increment=1;INSERT INTO eventos VALUES (null, "2006-10-11","Encontro Mineiro De Software Livre"), (null, "2006-10-12", "Encerramento do Encontro Mineiro de Software Livre"), (null, "2006-12-01", "PHP Conference Brasil, em São Paulo"), (null, "2006-12-02", "Encerramento do PHP Conference Brasil, em São Paulo");Conexão com banco de dados:
<?php $conn = mysql_connect("localhost","root","");mysql_select_db("test");?>Exibição da agenda:
<?phpinclude("conexao.php");?><html><head><style>span {font: 14px Tahoma, Verdana;}.evento{background: #f6f6f6;padding: 10px;}.data {font: bold 13px Trebuchet MS, Tahoma, Verdana;text-decoration: underline;}</style><?php//nessa sql que está todo o "segredo"$sql = "SELECT evento, data FROM eventos WHERE TO_DAYS(data) >= TO_DAYS(NOW()) AND TO_DAYS(data) <= TO_DAYS(NOW()) + 15";$query = mysql_query($sql);mysql_close();while($array = mysql_fetch_array($query)){ list($ano,$mes,$dia) = explode("-",$array[1]);?><div class="evento"> <span class="data"> <?=$dia . "/" . $mes . "/" . $ano?> </span> - <span class="evento"> <?=$array[0]?> </span></div><br /><?php}?>Nesse código pegamos todos os eventos que ocorrerão de hoje até daqui a 15 dias.....
O segredo
SELECT evento, data FROM eventos WHERE **TO_DAYS(data) >= TO_DAYS(NOW())** AND **TO_DAYS(data) <= TO_DAYS(NOW()) + *15***
**TO_DAYS(data) >= TO_DAYS(NOW())** => data do banco de dados >= data atual
**TO_DAYS(data) <= TO_DAYS(NOW()) + *15*** => data do banco de dados <= data atual mais 15 dias
Assim fica simples, não?
Era isso então, espero que seja útil.
até logo.
Carregando comentários...