任何人都可以解决这个问题吗?我不知道在结束日期时如何捕捉日期。
例如:
$date_expire = '2014-07-06 13:01:00';
$date1 = new DateTime();
$date2 = new DateTime($date_expire);
if(idate('Y', $date1) >= idate('Y', $date2)){
echo 'unlimited';
} else {
echo 'expired';
}
错误idate()期望参数2为long,给定对象
我总是得到unlimited
。
答案 0 :(得分:0)
查看idate()上的文档,第二个参数是整数Unix时间戳,如果没有给出时间戳,则默认为当前本地时间,因此更改为
...
if(idate('Y', strtotime($date1)) >= idate('Y', strtotime($date2))){
echo 'unlimited';
} else {
echo 'expired';
}
答案 1 :(得分:0)
idate()
属于与date()
相同的函数系列,与UNIX time一起处理时间,而不是DateTime
个对象。
将$date->getTimestamp()
传递给idate()
。
if(idate('Y', $date1->getTimestamp()) >= idate('Y', $date2->getTimestamp())){
echo 'unlimited';
} else {
echo 'expired';
}
或者更好:
if ($date1->format('Y') >= $date2->format('Y'))
...