fork(1) download
  1. <?php
  2.  
  3. function diff(\DateTime $datetime1, \DateTime $datetime2 = null)
  4. {
  5. if (!isset($datetime2)) {
  6. $datetime2 = new \DateTime('now');
  7. }
  8.  
  9. $interval = $datetime1->diff($datetime2, false);
  10. $days = $interval->days;
  11.  
  12. // calculate seconds
  13. $interval->s = $datetime2->getTimestamp() - $datetime1->getTimestamp();
  14. $interval->i = floor($interval->s / 60);
  15. $interval->h = floor($interval->s / (60 * 60));
  16. $interval->d = $days;
  17. $interval->w = floor($days / 7);
  18. $interval->m = floor($days / $datetime1->format('t'));
  19.  
  20. return $interval;
  21. }
  22. $interval = diff(new \DateTime('2015-02-01'), new \DateTime('2015-03-01'));
  23.  
  24. echo "лет: {$interval->y}\nчасов: {$interval->h}\nминут: {$interval->i}\nсекунд: {$interval->s}\n\n";
  25.  
  26. echo $interval->format('%y лет, %M месяцев, %D дней, %H часов, %I минут, %S секунд');
Success #stdin #stdout 0.02s 24400KB
stdin
Standard input is empty
stdout
лет: 0
часов: 672
минут: 40320
секунд: 2419200

0 лет, 01 месяцев, 28 дней, 672 часов, 40320 минут, 2419200 секунд