- floor: documentation ( source)
<?php
function diff(DateTime $datetime1, DateTime $datetime2 = null)
{
if (!isset($datetime2)) {
$datetime2 = new DateTime('now');
}
$interval = $datetime1->diff($datetime2, false);
$days = $interval->days;
// calculate seconds
$interval->s = $datetime2->getTimestamp() - $datetime1->getTimestamp();
$interval->i = floor($interval->s / 60);
$interval->h = floor($interval->s / (60 * 60));
$interval->d = $days;
$interval->w = floor($days / 7);
$interval->m = floor($days / 30);
return $interval;
}
// Если второй аргумент не задан, то берётся текущие время
$interval = diff(new DateTime('2012-02-15 12:00:00'));