为什么这个date_diff不起作用?

时间:2016-07-19 09:25:00

标签: php datediff

当图像在数据库中设置了“创建日期”值时,我想显示一个'NEW'div,不超过一周。

$now = new DateTime();
$then = new DateTime($imageSet->created);
$diff = date_diff($now,$then);
if($diff->format('%d') >= 0 && $diff->format('%d') < 8 && $imageSet->created != null) { $new = 1; } else { $new = 0; }

但是对于日期创建值为2016-05-17的图像,这显示了div'NEW',当它显然超过一周之久。根据我的上述条件,我期待2016-07-12或更高版本的任何日期创建价值触发'新'div。

任何想法为什么不是?

2 个答案:

答案 0 :(得分:1)

%d&#34;年,月,日&#34; 描述的部分。如果总差异为40天,那么大约是9天,因为它是一个月,九天的差异。

如果您想要天差异,请使用%a

答案 1 :(得分:0)

使用以下代码

$now = new DateTime();
if(empty($imageSet->created)) {
    $new = 0
} else {
    $then = new DateTime($imageSet->created);
    $diff = date_diff($now,$then);
    if($diff->format('%a') >= 0 && $diff->format('%a') < 8 ) { 
        $new = 1; 
    } else { 
        $new = 0; 
    }
}