2013-06-05 38 views
0

这是我的弱点...编写if语句来获取两个特定日期之间的数据。我不知道它是什么,但它总是让我困惑。PHP在日期间抓取数据时遇到了问题

if($date > $enddate || $date < $startdate){ 

日期从数据库中来来往往的开始日期是2013年5月6日和结束日期是2013年6月5日,我试图抓住其间的这两个日期的数据。

任何帮助将是非常感谢。

+2

假设'$ startdate'在'$ enddate'之前,你的逻辑是相反的。你应该检查日期__结束日期和_ _开始日期。 –

+0

如果按照“写”的方式对“逻辑”条件进行排序,它总是有帮助的。所以“start dognose

回答

4

它不应该是:

if($date < $enddate && $date > $startdate){ 

如果日期出来的格式为“2013年5月6日”的数据库,你也可以做这样的事情,所以你实际上可以恰当地比较:

//...get $date from the database... 
$date = strtotime($date); 
$startDate = strtotime("2013-05-06"); 
$endDate = strtotime("2013-06-05"); 
if($date < $enddate && $date > $startdate){ 
    //some code 
} 

strtotime将您的日期字符串转换为数字的UNIX时间戳,使其更容易比较。

+1

它应该是一个AND –

+0

正确!我编辑了答案。 – user1578653

+0

@ØHankyPankyØ - 你真的不应该用这种方式比较它们,但它实际上在Y-m-d格式时会起作用 - 字符串顺序与日期排序相匹配。 –

0

假设变量是日期,什么user1578653写的是正确的

if($date < $enddate && $date > $startdate){ } 

http://php.net/manual/en/datetime.diff.php

这一切都是假设,他们是日期,这将有助于如果您向我们展示了我们是什么样的变量与...合作。

0

请问if (strtotime($date) > strtotime($start_date) && strtotime($date) < strtotime($end_date))有用吗?