2015-10-19 97 views
0

我有一个以毫秒为单位的开始和结束时间。PHP检查当前时间是否在两次之间

当用户访问该页面时,我必须获取所有ON AIR系列电视节目。

所以我想这样做:

if($prog["inizio"] < time() && $prog["fine"] > time()){ 
     array_push($programmazioneFinal[$date."-".$prog["id_canale"]], $prog); 
} 

的逻辑是只得到它的启动时间比现在低(意甲已经启动)和结束时间比现在更大的系列。

由于某些原因,它还会返回那些在当天晚些时候开始的系列,而不仅仅是那些现在在AIR上的系列。

怎么了?

我已经添加了我的数据库的屏幕截图只是为了使这个更清晰。

enter image description here

谢谢!

+0

你试图做到这一点在PHP侧时间戳值,而不是DB端? –

+0

如果你正在做这件事在PHP方面,采取我的答案...否则采取@胡里奥的回答 –

+0

可能你的* inizio *是错误的,可能是0('* null *

回答

1

在PHP中:您可以使用strtotime。这会给你,你可以用比较

strtotime("now") 

编辑在你的代码

if($prog["inizio"] < strtotime("now") && $prog["fine"] > strtotime("now")){ 
     array_push($programmazioneFinal[$date."-".$prog["id_canale"]], $prog); 
} 
1

让你查询的样子

Select * from ... WHERE UNIX_TIME($your_date_parameter) BETWEEN inizio AND fine 
相关问题