KodeFor.Me
KodeFor.Me

Reputation: 13511

PHP DateTime class produce error on $obj->diff() why?

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()

Upvotes: 1

Views: 510

Answers (1)

hakre
hakre

Reputation: 197682

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?.

Upvotes: 1

Related Questions