当图像在数据库中设置了“创建日期”值时,我想显示一个'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。
任何想法为什么不是?
答案 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;
}
}