日期:2014-05-17  浏览次数:20472 次

php怎么判断当前时间在某个时间范围内?
我有一个节目表功能,输出当天的节目单安排。。

主要有 节目名称 节目介绍 和 节目开始时间和节目结束时间。。

我要怎么判断当前时间输出的是哪一个?

如何做时间判断?

------解决方案--------------------
WHERE NOW() BETWEEN `节目开始时间` AND `节目结束时间`;
------解决方案--------------------
这个和你sql没有关系。你的节目表目前看没有规律,即使有可能以后需求也会变,只要在你的节目表中加个过期时间段就行了。
------解决方案--------------------
lz最好能把表详细列出来
SQL code
SELECT * FROM `table` WHERE CURRENT_TIME() BETWEEN `开始时间` AND `结束时间`;

------解决方案--------------------
数据库是不是可以存一个区域呢。一个开始一个结束。这样不就好办了?
------解决方案--------------------
如果你节目单是周期性的,那就有多个判断拉。
swtch($weeks){
case 1:
3:00 - 5:00->a节目表,5:00 - 6:00->b节目表,6:00-9:00->节目表c}这样的(做相应的判断就可)
case 2:
{3:00 - 5:00->a节目表,5:00 - 5:30->B节目表,5:30 - 6:00->D节目表,8:00-9:30->C节目表}(同理)

}
------解决方案--------------------
为啥搞这么纠结...
节目表是有规律的是吧? 那么只要在数据库中记录每个节目的起始时间,用unixtimestamp表示,只要
节目开始 < 当前时间 < 节目结束 不就行了么?


然后就是定时去填充节目表就行呗..
------解决方案--------------------
你早给出表结构,问题早就解决了!

现在的日期 now()
今天周几 weekday(now())
今天有哪些节目播出 find_in_set(weekday(now()), `week`) 注意你的 week 字段名是 mysql 保留字
现在的时间 curtime()
当前的时间在哪个时间段 curtime() between start_time and finish_time

组合在一起
select * from tbl_name where find_in_set(weekday(now()),`week`) and curtime() between start_time and finish_time
------解决方案--------------------
14楼的回答最靠谱,我赞同。