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

PHP 時間計算核心技巧:以秒為基準的靈活運算

     編輯:PHP 綜合知識

PHP 沒有內建類似 Delphi 或 SQL 的日期加減函數,但掌握「以秒為基準」的核心邏輯,即可輕鬆實現各類時間運算。

核心原則

PHP 所有時間計算的基礎都是 Unix 時間戳(秒)。掌握秒與分、時、天的換算,時間運算變得簡單直觀。

場景一:指定時間加減間隔

$time1 = '2008-10-1 12:30:30';
// 加 30 分鐘
echo date('Y-m-d H:i:s', strtotime($time1) + 30 * 60);
// 結果:2008-10-01 13:00:30

關鍵點:

  • strtotime() 將字符串轉為時間戳
  • 間隔換算:分×60、時×3600、天×86400
  • date() 格式化輸出,注意分鐘是 i 非 m

場景二:計算兩時間差值

$time1 = '2008-10-1 12:30:30';
$time2 = '2008-10-1 13:45:30';

$diff = (strtotime($time2) - strtotime($time1)) / 60; // 差值轉分鐘
echo $time1 . ' 到 ' . $time2 . ' 的時差 ' . $diff . ' 分鐘';
// 結果:2008-10-1 12:30:30 到 2008-10-1 13:45:30 的時差 75 分鐘

常用間隔換算表

單位秒數應用示例
1 分鐘60+30*60 = 加30分
1 小時3600+2*3600 = 加2小時
1 天86400+7*86400 = 加一周
1 週604800strtotime('+1 week')
1 月約2592000strtotime('+1 month')

進階技巧

使用 strtotime 相對格式(更直觀)

echo date('Y-m-d H:i:s', strtotime('+1 hour', strtotime($time1)));
echo date('Y-m-d', strtotime('next Monday'));
echo date('Y-m-d', strtotime('last day of next month'));

DateTime 類(PHP 5.2+,面向對象、更強大)

$dt = new DateTime('2008-10-1 12:30:30');
$dt->add(new DateInterval('PT30M')); // 加30分鐘
echo $dt->format('Y-m-d H:i:s');

$diff = $dt1->diff($dt2); // 返回 DateInterval 對象
echo $diff->format('%h小時%i分鐘');

避坑指南

  1. 時區設置:必須在 php.ini 或代碼中設置 date_default_timezone_set('Asia/Shanghai')
  2. 32位系統時間戳範圍限制(1901-2038),長期項目建議用 DateTime
  3. 夏令時切換導致的「一天非86400秒」問題,跨天計算優先用 strtotime('+1 day')

以秒為錨點,配合 strtotime 解析靈活性與 DateTime 面向對象優勢,PHP 時間計算其實比想像中更強大。

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