使用PHP从mysql数据库中检查时间



我在mysql数据库中有两次从10:00开始到18:00结束,现在我想用PHP检查一下,如果时间不大于或小于这两次,该怎么办?感谢Mysql被设置为TIME,只是没有日期时间,基本上我想检查一下现在的时间是否不在开始和结束之间。开始表示=从2开始,结束表示到2。Day_id是星期天。这是不起作用的内容

$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;

如何检查时间的任何想法("H:i"(;从DB到次?

使用MySql的当前时间概念,尝试此查询。

SELECT * FROM opening_hrs 
WHERE TIME(NOW()) >= TIME(from2)
AND TIME(NOW()) < TIME(to2)
AND day_id=whatever

专业提示请小心将>=用于时间范围的开始,将<用于时间范围结束,以避免出现一个接一个的错误。

NOW()是MySql中一个对时区敏感的操作。如果您在打开每个MySql连接后立即执行此操作。您将从NOW()获得当地时间。

SET time_zone = `Australia/Sydney`;

Obv,使用您自己的时区标志。

我只想使用current_time,它是一个内置的MySQL,可以为您提供当前时间:

select * 
from opening_hrs 
where 
current_time >= time(:from2)   
and current_time < time(:to2)
and day_id = :day_id

请注意,您应该使用准备好的语句,而不是将变量连接到查询字符串中:在这篇著名的SO文章中可以了解更多信息。

最新更新