idate()期望参数2为long,给定对象

时间:2014-07-08 02:49:39

标签: php date

任何人都可以解决这个问题吗?我不知道在结束日期时如何捕捉日期。

例如:

$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

2 个答案:

答案 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'))
...