doulin9679 2011-10-29 11:25
浏览 83
已采纳

PHP DateTime类在$ obj-> diff()上产生错误为什么?

Why the following code:

function dDiff($start, $end = false)
{
    if(!$end)
    {
        $end = time();
    }

    if(!is_numeric($start) || !is_numeric($end))
    {
        return false;
    }

    $start  = date('Y-m-d H:i:s',$start); 
    $end    = date('Y-m-d H:i:s',$end); 
    $d_start    = new DateTime($start);
    $d_end      = new DateTime($end);
    $diff = $d_start->diff($d_end);

    return array(
        'year' => $diff->format('%y'),
        'month' => $diff->format('%m'),
        'day' => $diff->format('%d'),
        'hour' => $diff->format('%h'),
        'min' => $diff->format('%i'),
        'sec' => $diff->format('%s')
    );
}

produce that error :

Fatal error: Call to undefined method DateTime::diff()
  • 写回答

1条回答 默认 最新

  • drbouzlxb92333332 2011-10-29 11:46
    关注

    You get the error because the diff() function does not exists on the DateTime object. That's the case with PHP versions below 5.3 In the manual that's written as

    (PHP 5 >= 5.3.0)

    on top of each function page.

    You either need to make PHP 5.3 a requirement for your plugin and/or switch to an alternative routine for that part. See How to calculate the difference between two dates using PHP?.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?