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') 更精準。| 字元 | 說明 | 範例輸出 |
|---|---|---|
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 |
N | ISO-8601 星期(1=星期一) | 1-7 |
H | 24小時制(補零) | 00-23 |
G | 24小時制(不補零) | 0-23 |
h | 12小時制(補零) | 01-12 |
g | 12小時制(不補零) | 1-12 |
i | 分鐘(補零) | 00-59 |
s | 秒(補零) | 00-59 |
a | am/pm 小寫 | am |
A | AM/PM 大寫 | PM |
S | 序數後綴 | st, nd, rd, th |
t | 該月總天數 | 28-31 |
z | 年中第幾天(0 起) | 0-365 |
U | Unix Timestamp | 1700000000 |
c | ISO 8601 格式 | 2024-01-15T10:30:00+08:00 |
r | RFC 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+)
$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 物件
date() 相同。// php.ini
date.timezone = "Asia/Taipei"
// 或腳本開頭
date_default_timezone_set("Asia/Taipei");
未設定會產生 E_WARNING 且預設 UTC,導致時間偏移。
$now = time() 傳入 date($fmt, $now) 避免重複系統調用。