Reputation: 13511
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
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