<?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 / $datetime1->format('t'));
return $interval;
}
$interval = diff(new DateTime('2012-02-15 12:00:00'));
echo "лет: {$interval->y}\nчасов: {$interval->h}\nминут: {$interval->i}\nсекунд: {$interval->s}";
PD9waHAKCmZ1bmN0aW9uIGRpZmYoRGF0ZVRpbWUgJGRhdGV0aW1lMSwgRGF0ZVRpbWUgJGRhdGV0aW1lMiA9IG51bGwpCnsKICAgIGlmICghaXNzZXQoJGRhdGV0aW1lMikpIHsKICAgICAgICAkZGF0ZXRpbWUyID0gbmV3IERhdGVUaW1lKCdub3cnKTsKICAgIH0KCiAgICAkaW50ZXJ2YWwgPSAkZGF0ZXRpbWUxLT5kaWZmKCRkYXRldGltZTIsIGZhbHNlKTsKICAgICRkYXlzID0gJGludGVydmFsLT5kYXlzOwoKICAgIC8vIGNhbGN1bGF0ZSBzZWNvbmRzCiAgICAkaW50ZXJ2YWwtPnMgPSAkZGF0ZXRpbWUyLT5nZXRUaW1lc3RhbXAoKSAtICRkYXRldGltZTEtPmdldFRpbWVzdGFtcCgpOwogICAgJGludGVydmFsLT5pID0gZmxvb3IoJGludGVydmFsLT5zIC8gNjApOwogICAgJGludGVydmFsLT5oID0gZmxvb3IoJGludGVydmFsLT5zIC8gKDYwICogNjApKTsKICAgICRpbnRlcnZhbC0+ZCA9ICRkYXlzOwogICAgJGludGVydmFsLT53ID0gZmxvb3IoJGRheXMgLyA3KTsKICAgICRpbnRlcnZhbC0+bSA9IGZsb29yKCRkYXlzIC8gJGRhdGV0aW1lMS0+Zm9ybWF0KCd0JykpOwoKICAgIHJldHVybiAkaW50ZXJ2YWw7Cn0KJGludGVydmFsID0gZGlmZihuZXcgRGF0ZVRpbWUoJzIwMTItMDItMTUgMTI6MDA6MDAnKSk7CgplY2hvICLQu9C10YI6IHskaW50ZXJ2YWwtPnl9XG7Rh9Cw0YHQvtCyOiB7JGludGVydmFsLT5ofVxu0LzQuNC90YPRgjogeyRpbnRlcnZhbC0+aX1cbtGB0LXQutGD0L3QtDogeyRpbnRlcnZhbC0+c30iOw==