Получил эту работу на php 5.3
$datetime1 = new DateTime("2011-10-10 10:00:00"); $datetime2 = new DateTime("2011-10-10 10:45:00"); $interval = $datetime1->diff($datetime2); $hours = $interval->format('%h'); $minutes = $interval->format('%i'); echo 'Diff. in minutes is: '.($hours * 60 + $minutes);
Как я могу заставить его работать на php 5.2? существуют ли какие-либо эквивалентные функции?
Получил работу
$date1 = "2011-10-10 10:00:00"; $date2 = "2011-10-10 10:11:00"; echo round((strtotime($date2) - strtotime($date1)) /60);
Вместо DateTime
вы можете использовать strtotime
и date
:
$datetime1 = strtotime("2011-10-10 10:00:00"); $datetime2 = strtotime("2011-10-10 10:45:00"); $interval = abs($datetime2 - $datetime1); $minutes = round($interval / 60); echo 'Diff. in minutes is: '.$minutes;
Попробуй это
function time_Diff_Minutes($startTime, $endTime) { $to_time = strtotime($endTime); $from_time = strtotime($startTime); $minutes = ($to_time - $from_time) / 60; return ($minutes < 0 ? 0 : abs($minutes)); } echo time_Diff_Minutes("2008-12-13 20:00:00","2008-12-14 08:00:00"); //output 720 echo time_Diff_Minutes("2008-12-14 20:00:00","2008-12-13 08:00:00"); //output 0 (startTime > endTime) Ternary will return 0
Если вам нужны минуты, охватывающие несколько дней, вы можете добавить это в микс:
$days = $interval->format("%d"); if ($days > 0) { return ($hours * 60 + $minutes) + ($days * 24 * 60); }