首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 計算兩日期相差天數

     編輯:PHP 綜合知識

將日期字串轉為 Unix 時間戳 (秒),相減除以 86400 (一天秒數) 即得天數差。適用於 1970-01-01 之後的日期。

基本函數

function diffDays($day1, $day2) {
    $t1 = strtotime($day1);
    $t2 = strtotime($day2);
    if ($t1 === false || $t2 === false) return false;
    return abs($t1 - $t2) / 86400;
}

echo diffDays("2013-07-27", "2013-08-04"); // 8

DateTime 物件版 (PHP 5.3+,推薦)

function diffDaysDT($day1, $day2) {
    $d1 = new DateTime($day1);
    $d2 = new DateTime($day2);
    $interval = $d1->diff($d2);
    return (int)$interval->format('%a'); // 總天數
}

DateTime 優勢

  • 支援 1970 年前 日期
  • 自動處理時區、夏令時間
  • 可取得年/月/日/時/分/秒完整差值
  • 不可變版 DateTimeImmutable 更安全

包含/不包含端點

  • diff($d2)->days 或 %a:不包含 端點 (27 到 28 差 1 天)
  • 若需包含 端點 (27 到 28 算 2 天):return $interval->days + 1;

效能

  • strtotime 速度極快,適合大量計算
  • DateTime::diff 較慢但功能完整

現代專案請優先使用 DateTime,避免時區與 1970 年前問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved