PHP 想要計算日期時間差距幾天、幾小時、幾秒等等,以前都是自己換算 timestamp 後,再來自己除,然後換算成天數、時分秒等等。
現在 PHP DateTime 的物件,可以直接使用 format() 來輸出這些格式,省掉自己算的工~
使用 PHP Datetime Format 計算多久以前的時間
PHP 可以使用 DateTime() 的物件,然後搭配 diff()、format() 來輸出結果。
不想使用 DateTime() 物件,也可以直接使用 date_create()、date_diff() 來操作。
官方文件可見
範例
<?php $datetime1 = new DateTime('2020-10-11'); $datetime2 = new DateTime('2020-10-13'); $interval = $datetime1->diff($datetime2); echo $interval->format('%R%a days'); // +2 days ?>
<?php $datetime1 = date_create('2020-10-11'); $datetime2 = date_create('2020-10-13'); $interval = date_diff($datetime1, $datetime2); echo $interval->format('%R%a days'); // +2 days ?>
<?php $datetime1 = new DateTime('2020-10-11 11:11:20'); $datetime2 = new DateTime('2020-10-13 22:22:25'); $interval = $datetime1->diff($datetime2); echo $interval->format('%R%a days'); // +2 days echo $interval->format("%H:%I:%S (Full days: %a)"), "\n"; // 11:11:05 (Full days: 2) ?>