核心時間戳函式
| 函式 | 回傳值 | 備註 |
time() | int | 當前 Unix 時間戳(秒) |
microtime(true) | float | 含微秒的高精度時間戳,PHP 5.0+ |
mktime(h,m,s,mon,day,year) | int | 指定日期轉時間戳,參數可從右省略 |
strtotime('英文描述') | int|false | 相對/絕對時間字串解析,極強大 |
格式化輸出:date() 與 DateTime
// 程序式
echo date('Y-m-d H:i:s'); // 2024-05-20 14:30:05
echo date('Y-m-d', strtotime('+1 week')); // 一週後日期
// 物件導向(推薦 PHP 5.3+)
$dt = new DateTime('now', new DateTimeZone('Asia/Taipei'));
echo $dt->format('Y-m-d H:i:s');
$dt->modify('+1 month');
echo $dt->format('Y-m-d');
常用格式字元速查
| Y | 4位年份 | y | 2位年份 |
| m | 月份 01-12 | n | 月份 1-12 |
| d | 日期 01-31 | j | 日期 1-31 |
| H | 24小時 00-23 | h | 12小時 01-12 |
| i | 分鐘 00-59 | s | 秒數 00-59 |
| w | 星期 0(日)-6 | W | 年度第幾週 |
strtotime 相對時間魔法
echo strtotime('+1 day'); // 明天這時
echo strtotime('+1 week'); // 下週同一天
echo strtotime('next Monday'); // 下個週一
echo strtotime('last day of February 2024'); // 2月最後一天
echo strtotime('2024-01-31 +1 month'); // 2024-02-29 (閏年自動處理)
微秒級效能計時範例
PHP 5.1+ 超全域請求時間
// $_SERVER['REQUEST_TIME'] // 整數秒(PHP 5.1+)
// $_SERVER['REQUEST_TIME_FLOAT'] // 浮點數微秒(PHP 5.4+)
時區設定最佳實踐
// php.ini
date.timezone = "Asia/Taipei"
// 或程式中設定(需在所有 date 函式之前)
date_default_timezone_set('Asia/Taipei');
工具推薦
延伸專題
- 《PHP 日期與時間用法總結》
- 《PHP 數學運算技巧總結》