Класс PHP DateTime выдает ошибку в $ obj-> diff () почему? - PullRequest
1 голос
/ 29 октября 2011

Почему следующий код:

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')
    );
}

выдает эту ошибку:

Fatal error: Call to undefined method DateTime::diff()

1 Ответ

1 голос
/ 29 октября 2011

Вы получаете ошибку, потому что функция diff() не существует в объекте DateTime. Это относится к версиям PHP ниже 5.3 В руководстве написано

(PHP 5> = 5.3.0)

вверху каждой функциональной страницы.

Вам нужно либо сделать PHP 5.3 требованием для вашего плагина, и / или переключиться на альтернативную подпрограмму для этой части. См. Как рассчитать разницу между двумя датами с помощью PHP? .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...