问题在获取即将发生的事件时

时间:2014-01-20 07:35:19

标签: php time strtotime between

所以我已经编写了用于获取未来7天即将发生的事件列表的代码,它工作正常并给我即将发生的事件列表。但问题是它也提供了过去几天的事件记录。这是我的代码:

$today = strtotime("Now"); 
echo date('Y-m-d :H:i:s',$today)."<br>"; 
$leadDate = strtotime("+7 day", $today);
echo date('Y-m-d :H:i:s',$leadDate)."<br>"; 
$rs = mysql_query("SELECT * FROM names WHERE due_date BETWEEN CURDATE() AND '$leadDate'") or die(mysql_error());
echo "<b>Dues for upcoming 7 days</b><br>";
while($row=mysql_fetch_assoc($rs))
{
    echo $row['name']." => ".$row['normal_date']."<br>";
} 

我有桌子:

id| name | due_date | normal_date
|1|name1|1390245240|Mon, 20 Jan 2014 19:14:00 GMT
|2|name2|1390331640|Tue, 21 Jan 2014 19:14:00 GMT
|4|name3|1390418040|Wed, 22 Jan 2014 19:14:00 GMT
|5|name4|1390590840|Fri, 24 Jan 2014 19:14:00 GMT
|6|name5|1390850040|Mon, 27 Jan 2014 19:14:00 GMT
|7|name6|1390936440|Tue, 28 Jan 2014 19:14:00 GMT
|8|name7|1396034040|Fri, 28 Mar 2014 19:14:00 GMT
|9|name8|1398708840|Mon, 28 Apr 2014 18:14:00 GMT
|10|name9|1390158840|Sunday, 19 Jan, 2014
|11|name10|1390072440|Saturday, 18 Jan, 2014
|12|name11|1390176000|20 Jan, 2015

服务器今天的日期是2014年1月19日,但它也给了我2014年1月18日的清单,但我正在寻找接下来的7天记录。我目前的脚本给了我以下的输出:

2014-01-19 :20:44:30
2014-01-26 :20:44:30
Dues for upcoming 7 days
name1 => Mon, 20 Jan 2014 19:14:00 GMT
name2 => Tue, 21 Jan 2014 19:14:00 GMT
name3 => Wed, 22 Jan 2014 19:14:00 GMT
name4 => Fri, 24 Jan 2014 19:14:00 GMT
name9 => Sunday, 19 Jan, 2014
name10 => Saturday, 18 Jan, 2014
name11 => 20 Jan, 2015

为什么2014年1月18日&amp; 2014年1月20日有记录,我错了。请帮助。 提前致谢。

1 个答案:

答案 0 :(得分:0)

试试这段代码:

$rs = mysql_query("SELECT * FROM names WHERE due_date BETWEEN '$today' AND '$leadDate'") or die(mysql_error());

而不是CURDATE函数使用$today