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

PHP date() 日期格式化參數完整對照表與實戰技巧

     編輯:PHP 綜合知識

時間戳基礎

time() 返回自 1970-01-01 00:00:00 UTC 至今的秒數(Unix Timestamp)。日期運算即秒數加減:

  • 前一天:time() - 86400(60*60*24)
  • 前一年:time() - 31536000(86400*365,忽略閏年)
  • 推薦使用 strtotime('-1 day')、strtotime('-1 year') 更精準。

date() 格式化字元完整對照表

字元說明範例輸出
Y四位數年份2024
y兩位數年份24
m兩位數月份(補零)01-12
n月份(不補零)1-12
F月份英文全名January
M月份三字母縮寫Jan
d兩位數日期(補零)01-31
j日期(不補零)1-31
D星期三字母縮寫Mon
l (小寫L)星期英文全名Monday
w星期數字(0=星期日)0-6
NISO-8601 星期(1=星期一)1-7
H24小時制(補零)00-23
G24小時制(不補零)0-23
h12小時制(補零)01-12
g12小時制(不補零)1-12
i分鐘(補零)00-59
s秒(補零)00-59
aam/pm 小寫am
AAM/PM 大寫PM
S序數後綴st, nd, rd, th
t該月總天數28-31
z年中第幾天(0 起)0-365
UUnix Timestamp1700000000
cISO 8601 格式2024-01-15T10:30:00+08:00
rRFC 2822 格式Mon, 15 Jan 2024 10:30:00 +0800

非上列字元原樣輸出(如 -、:、/、中文文字)。

常用格式組合範例

date("Y-m-d H:i:s")        // 2024-01-15 10:30:45
date("Y/m/d")              // 2024/01/15
date("Y年m月d日")           // 2024年01月15日
date("l, F j, Y")          // Monday, January 15, 2024
date("D, d M Y H:i:s O")   // RFC 2822
date("c")                  // ISO 8601
date("Y-m-d\TH:i:sP")      // 手動 ISO 8601 (PHP 5.1.3+)

進階:DateTime 物件導向用法(PHP 5.2+ 推薦)

$dt = new DateTime();           // 當前時間
$dt = new DateTime("-1 week");  // 相對時間
$dt->setTimezone(new DateTimeZone("Asia/Taipei"));
echo $dt->format("Y-m-d H:i:s");

// 日期運算
$dt->modify("+1 month");
$dt->add(new DateInterval("P7D")); // 加 7 天
$diff = $dt1->diff($dt2);          // 差值 DateInterval 物件
  • 支援時區、閏年、夏令時自動處理。
  • 可處理 32 位系統 2038 年問題(64 位整數)。
  • 格式化字元與 date() 相同。

時區設定最佳實踐

// php.ini
date.timezone = "Asia/Taipei"

// 或腳本開頭
date_default_timezone_set("Asia/Taipei");

未設定會產生 E_WARNING 且預設 UTC,導致時間偏移。

效能微優化

  • 高頻呼叫(如日誌每行)可緩存 $now = time() 傳入 date($fmt, $now) 避免重複系統調用。
  • 固定格式字串提前定義常數,避免重複解析。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved