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() 將字符串轉為時間戳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 週 | 604800 | strtotime('+1 week') |
| 1 月 | 約2592000 | strtotime('+1 month') |
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'));
$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分鐘');
date_default_timezone_set('Asia/Shanghai')strtotime('+1 day')以秒為錨點,配合 strtotime 解析靈活性與 DateTime 面向對象優勢,PHP 時間計算其實比想像中更強大。