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()
You get the error because the
diff()function does not exists on theDateTimeobject. That’s the case with PHP versions below 5.3 In the manual that’s written ason 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?.