Tenho duas vezes no mysql DB começar as 10:00 e as 18:00 acabar agora eu quero verificar com PHP se o tempo não é maior ou menor destes dois tempos como fazê-lo? Graças Mysql está definido para TEMPO única sem data e hora, basicamente, eu quero verificar se o tempo agora não é entre o início eo fim. início representam = from2 e final representam to2. Day_id é dia de semana .este é o que não está funcionando
$time_now = date("H:i");
//in DB format 00:00 // time
echo "SELECT * FROM opening_hrs WHERE
(TIME(from2) > TIME('".$time_now."') AND TIME(to2) < TIME('".$time_now."') )
AND day_id=".$day_id;
quaisquer ideias como verificar o tempo ( "H: I"); entre os tempos de DB?
Tente esta pergunta, usando noção da hora actual do MySql.
SELECT * FROM opening_hrs
WHERE TIME(NOW()) >= TIME(from2)
AND TIME(NOW()) < TIME(to2)
AND day_id=whatever
Pro ponta Tenha o cuidado de usar >=
para o início de intervalos de tempo e <
de suas extremidades, para evitar off-por-um erro.
NOW()
é uma operação delicada fuso horário em mysql. Se você fizer isso direito depois de abrir cada conexão MySql. você vai ter a sua hora local de NOW()
.
SET time_zone = `Australia/Sydney`;
Obvs, usar o seu próprio indicador de fuso horário .