PHP将DateTime与当前时间进行比较

时间:2012-12-29 10:25:31

标签: php mysql sql time

我将字段与当前时间进行比较时遇到了一些麻烦。

我在MySQL中有两个字段,用于记录讲座的开始时间和结束时间。

我要做的是检查当前时间是否在开始时间和结束时间之间。

$ starttime和$ endtime采用DateTime的形式。

代码在这里:

$now = time();
$compare = mysql_query("SELECT * FROM lecture WHERE strtotime(starttime) < '$now' AND '$now' < strtotime(endtime)");

但它不起作用。

我也试过这个:

$now = new DateTime;
$compare = mysql_query("SELECT * FROM lecture WHERE starttime < '$now' AND '$now' < endtime");

但它也破了。

有谁能告诉我如何实现它?非常感谢。

2 个答案:

答案 0 :(得分:7)

使用BETWEEN

SELECT * 
FROM   lecture 
WHERE  NOW() BETWEEN starttime AND endtime

答案 1 :(得分:1)

$ compare = mysql_query(“SELECT * FROM讲座WHERE starttime&lt; mysql_function AND mysql_function &lt; endtime”);

将mysql_function替换为以下函数之一

1)SYSDATE():示例输出为2012-12-29 16:03:20

2)CURDATE():示例输出为2012-12-29

3)UNIX_TIMESTAMP():示例输出为1356777278

取决于'startime和endtime'格式,在查询中替换上述函数之一。