Я использую такую функцию:
вот пример ипользования:
/** * Вычисляем разницу между двумя timestamps * Параметры: * string $date_start начальная дата в формате unix timestamp * string $date_finish конечая дата в формате unix timestamp * Возвращает * массив в следующем формате: 0 => секунды, 1 => минуты, 2 => часы, 3 => дни, 4 => месяцы, 5 => годы * @author zerkms (Ivan Kurnosov) */ function calcPeriod($date_start, $date_finish) { $st = explode('-', date('d-m-Y-H-i-s', $date_start)); $fin = explode('-', date('d-m-Y-H-i-s', $date_finish)); if (($seconds = $fin[5] - $st[5]) < 0) { $fin[4]--; $seconds += 60; } if (($minutes = $fin[4] - $st[4]) < 0) { $fin[3]--; $minutes += 60; } if (($hours = $fin[3] - $st[3]) < 0) { $fin[0]--; $hours += 24; } if (($days = $fin[0] - $st[0]) < 0) { $fin[1]--; $days = date('t', mktime(1, 0, 0, $st[1], $st[0], $st[2])) - $st[0] + $fin[0]; } if (($months = $fin[1] - $st[1]) < 0) { $fin[2]--; $months += 12; } $years = $fin[2] - $st[2]; return array($seconds, $minutes, $hours, $days, $months, $years); }
вот пример ипользования:
$date_finish = strtotime("1-03-2008"); $date_start = strtotime("31-01-2008"); $result = calcPeriod($date_start, $date_finish); echo 'C ' . date('h:i:s d-m-y', $date_start) . ' по '. date('h:i:s d-m-y', $date_finish) .' прошло ' . $result[0] . ' секунд ' . $result[1]. ' минут ' .$result[2] . ' часов ' .$result[3] . ' дней ' . $result[4] . ' месяцев ' . $result[5] . ' лет <br>';
Отредактировано: Alex (01.10.2008 19:35, 16 лет назад)