• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

skin

[Resolvido] Modificar hora a que começa novo dia

11 mensagens neste tópico

Boas,

a dúvida de hoje é a seguinte, eu tenho um calendário feito, tudo configurado e tal e agora o gajo para quem é o site quer que o dia de hoje mude a partir das 9h da manhã. No servidor não posso mudar as horas como acho que é óbvio, gostava de saber se há alguma forma de fazer isto.

Ele rege-se por $data = date(d-m-Y);

Agradeço brevidade na resposta :).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Basicamente o que o código que necessito de alterar faz é uma consulta na base de dados onde a data do evento é igual a data de hoje, se for mostra esse evento, no entanto, como o portal é de discotecas/bares ele quer que só mude para os eventos do dia seguinte a partir das nove horas da manhã. Imaginem (hoje) ele quer que no site seja dia 20-08-2007 até às 9h da manhã e não até às 00h.

A consulta é mais ou menos esta:

(...código...)

$data = date(d-m-Y);

mysql_query("SELECT * FROM `agenda` where `datafesta` = '$data'");

(...código...)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

acho que o mais práctico é gravares todas as datas com menos 9 horas que a real, mas nas listagens mostras a hora real, ou seja, em com mais 9 horas que o gravado... tive uma situação identica num cliente que fechava às 4 da manhã e foi a solução mais viável que encontrei e o cliente ficou satisfeito com a coisa...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas como é que faço isso, tipo isto não tem horas, na base de dados só tenho por exemplo 20-08-2007 | 21-08-2007 | etc. como meto menos 9h assim?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

talvez a maneira mais practica seja fazer abertura e fecho de dia...

quando começa a laborar, sejam elas 14, 18 ou 22h, faz a abertura do dia, por exemplo, dia 27... independentemente da hora a que acabe, 4, 5, 9, 11 da manhã, no software, até fazer o fecho do dia, será sempre dia 27...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Epa... não te ponhas a guardar datas não reais na base de dados.

Pega na data, converte-a para um unixtimestamp e subtrai-lhe em segundos o tempo que quiseres.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas se ele não trabalha com horas na bd, o mais practico é trabalhar com abertura e fecho de dia...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não o mais fácil é bastante simples.

Antes de fazeres a querie fazes um if bastante simples:

$hora = date("G"); // 24-hour format of an hour without leading zeros - 0 through 23

$dia  = $hora > 9 ? "today" : "yesterday";

$data = date("d-m-Y", strtotime( $dia ));

mysql_query("SELECT * FROM `agenda` where `datafesta` = '$data'");

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não o mais fácil é bastante simples.

Antes de fazeres a querie fazes um if bastante simples:

$hora = date("G"); // 24-hour format of an hour without leading zeros - 0 through 23

$dia  = $hora > 9 ? "today" : "yesterday";

$data = date("d-m-Y", strtotime( $dia ));

mysql_query("SELECT * FROM `agenda` where `datafesta` = '$data'");

Era mesmo isto :D, muito obrigado MX+ :).

Kingless obrigado também, vou estudar a função porque pode vir a dar bastante jeito :).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora