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

PHP 時間日期函數完整參考手冊

     編輯:PHP 相關知識

核心概念:時間戳記

PHP 時間函數核心是 Unix Timestamp:從 1970-01-01 00:00:00 UTC 至今的秒數。

  • 取得當前時間戳:time()
  • 指定日期轉時間戳:strtotime('2024-01-01') 或 mktimes()

日期格式化:date() 格式字元完整表

字元說明範例
Y4 位數年份2024
y2 位數年份24
m月份,補零01-12
n月份,不補零1-12
F月份英文全名January
M月份縮寫Jan
d日期,補零01-31
j日期,不補零1-31
H24 小時制,補零00-23
G24 小時制,不補零0-23
h12 小時制,補零01-12
g12 小時制,不補零1-12
i分鐘,補零00-59
s秒,補零00-59
aam/pm 小寫am
AAM/PM 大寫PM
D星期縮寫Mon
l星期全名Monday
w星期數字0(日)-6(六)
z年間第幾天0-365
t該月總天數28-31
UUnix 時間戳1704067200
S英文序數後綴st, nd, rd, th

常用範例

<?php
$t = time();
echo date("Y-m-d H:i:s", $t);        // 2024-01-01 12:30:45
echo date("Y/m/d", $t);              // 2024/01/01
echo date("l, F jS, Y", $t);         // Monday, January 1st, 2024
echo date("H:i", $t);                // 12:30
echo date("Y-m-d", strtotime("-1 day"));  // 昨天
echo date("Y-m-d", strtotime("+1 week")); // 下週同天
echo date("Y-m-d", strtotime("first day of this month")); // 本月1號
?>

日期運算:strtotime() 相對格式

  • +1 day, -1 day
  • +1 week, -2 weeks
  • +1 month, last day of next month
  • next Monday, last Friday
  • first day of this month

DateTime 物件導向介面(PHP 5.2+ 推薦)

<?php
$dt = new DateTime('now', new DateTimeZone('Asia/Taipei'));
echo $dt->format('Y-m-d H:i:s');

$dt->modify('+1 day');
echo $dt->format('Y-m-d');

$diff = $dt->diff(new DateTime('2024-12-31'));
echo $diff->days . ' 天';

優點:時區處理直觀、支援大於 2038 年的日期、鏈式操作。

常見陷阱

  • 時區:預設使用 php.ini date.timezone 或系統時區,建議程式碼開頭設定 date_default_timezone_set('Asia/Taipei')。
  • strtotime 對「下個月同一天」在 31 號會跳到下月 1 號(如 1/31 +1 month = 3/3),用 first day of next month 避免。
  • date() 受限 32 位元系統 2038 年問題,長期專案請用 DateTime。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved