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

PHP 日期時間處理完全指南:date、mktime、strtotime 實戰用法

     編輯:PHP 相關知識

PHP 日期時間處理完全指南:date、mktime、strtotime 實戰用法

PHP 提供強大的日期時間函數族群。本文系統整理 date() 格式化字元、mktime() 產生時間戳、strtotime() 解析英文文字日期的核心用法,附帶完整範例表格。

一、date() 格式化字元速查表

字元說明範例輸出
Y4 位數年份2024
y2 位數年份24
m月份(補 0)03
n月份(不補 0)3
M月份縮寫(英文)Mar
F月份全名(英文)March
d日期(補 0)09
j日期(不補 0)9
S日期後綴th, st, nd, rd
H24 小時制(補 0)16
G24 小時制(不補 0)16
h12 小時制(補 0)04
g12 小時制(不補 0)4
i分鐘(補 0)42
s秒數(補 0)26
aam/pm 小寫pm
AAM/PM 大寫PM
l星期幾全名Thursday
D星期幾縮寫Thu
L是否閏年1 或 0
w星期幾(0=週日)4
z一年中的第幾天68
W一年中的第幾週10
t當月總天數31
UUnix 時間戳1710000000
cISO 8601 格式2024-03-09T16:42:26+08:00
rRFC 2822 格式Sat, 09 Mar 2024 16:42:26 +0800

二、mktime() 產生指定時間戳

// 原型:mktime(時, 分, 秒, 月, 日, 年, 是否夏令時)
// 明天 00:00:00 的時間戳
$tomorrow = mktime(0, 0, 0, date('m'), date('d') + 1, date('Y'));
echo "明天是 " . date('Y/m/d', $tomorrow);

三、strtotime() 解析相對/絕對時間

// 絕對時間字串
$d = strtotime("10:38pm April 15 2015");
echo date("Y-m-d h:i:sa", $d);

// 相對時間(極其強大)
echo date("Y-m-d H:i:s", strtotime("tomorrow"));       // 明天
echo date("Y-m-d H:i:s", strtotime("next Saturday"));  // 下週六
echo date("Y-m-d H:i:s", strtotime("+3 Months"));      // 3 個月後
echo date("Y-m-d H:i:s", strtotime("last day of next month")); // 下月最後一天
echo date("Y-m-d H:i:s", strtotime("first day of this month")); // 本月第一天

四、常見實戰場景

需求代碼
今天 00:00:00 時間戳strtotime('today') 或 mktime(0,0,0)
本週一 00:00:00strtotime('monday this week')
本月第一天/最後一天strtotime('first day of this month') / strtotime('last day of this month')
判斷是否同一天date('Ymd', $t1) === date('Ymd', $t2)
計算兩日期相差天數floor(abs($t1 - $t2) / 86400)
格式化為中文date('Y年m月d日 H:i:s', $timestamp)
時區處理date_default_timezone_set('Asia/Taipei'); 放在腳本最前面

五、進階:DateTime 類(PHP 5.2+ 推薦)

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

// 日期運算
$dt->modify('+1 month');
$dt->sub(new DateInterval('P7D')); // 減 7 天

// 比較
$dt1 = new DateTime('2024-01-01');
$dt2 = new DateTime('2024-12-31');
$diff = $dt1->diff($dt2);
echo $diff->days; // 365
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved