两个日期之间的天数不会产生正确的结果

时间:2016-06-09 03:02:53

标签: php mysql

在计算两个日期之间的天数方面存在一些问题,我已经检查了与此问题相关的其他线程,但无法解决我的问题。

我正在使用这个PHP代码:

while($row = $result->fetch_assoc()) {
            $now = strtotime(date("Y-m-d"));
            $to = strtotime($row["pickupdate"]);
            //$days = 0;
            $days = $to - $now;

            if ($days <= 5 && $days >= 0)
            {
                echo "<table style='border: solid 1px black;'>...

在我的数据库中,我有4个&#34; pickdate&#34; s在if条件的范围内,但是当我运行查询并显示结果时,我只得到两个。

我得到相同的两个输出,这意味着,它只找到0天,但不是1天和2天,我已在数据库中设置。

数据库中日期范围内的日期:

  • 2016-06-11
  • 2016年6月9日
  • 2016-06-09
  • 2016年6月12日

那么为什么在本月11日和12日显示他们是否在if语句的范围内?

我已将if语句更改为:

if ($days >= 0 && $days <= 100)

我仍然得到相同的两个结果,

感谢任何帮助或指示,谢谢。

2 个答案:

答案 0 :(得分:1)

如评论中所述,您正在减去字符串。它不起作用。

$days = (strtotime($to) - strtotime($now))/86400;

答案 1 :(得分:1)

一天有84600秒,为了获得天数差异的结果,您需要将结果除以84600

无论哪种 变化

$days = $to - $now;

$days = ($to-$now)/86400;

或者你可以替换

 $now = strtotime(date("Y-m-d"));
 $to = strtotime($row["pickupdate"]);
 $days = $to - $now;

$days = (strtotime($row["pickupdate"]) - strtotime(date("Y-m-d")))/86400;