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

PHP 日期時間處理完全指南:格式化、計算與最佳實踐

     編輯:PHP 相關知識

date() 函數格式化字符詳解

date(format, timestamp) 是 PHP 格式化日期時間的核心函數。第二個參數可選,默認為當前時間戳。以下是常用格式字符對照表:

字符說明範例輸出
Y4 位數年份2024
y2 位數年份24
m數字月份,補零01-12
n數字月份,不補零1-12
F月份英文全稱January
M月份英文縮寫Jan
d日期,補零01-31
j日期,不補零1-31
H24 小時制,補零00-23
h12 小時制,補零01-12
i分鐘,補零00-59
s秒,補零00-59
UUnix 時間戳(秒)1704067200
w星期幾(數字)0(日)-6(六)
l星期幾英文全稱Monday
D星期幾英文縮寫Mon
S日期序數後綴st, nd, rd, th
a/Aam/pm 或 AM/PMam / AM
z年間第幾天0-365

日期時間差計算

計算兩日期相差天數的經典方法:

<?php
$start = '2024-01-01';
$end   = '2024-12-31';

$diff = floor((strtotime($end) - strtotime($start)) / 86400);
echo "相差 $diff 天"; // 輸出:相差 365 天
?>

原理:strtotime() 將日期字符串轉為 Unix 時間戳(秒),相減得秒數差,除以 86400(一天秒數),floor() 向下取整。

現代化最佳實踐:DateTime 類

PHP 5.2+ 推薦使用面向對象的 DateTime 及 DateInterval,功能更強、時區處理更準確:

<?php
$dt1 = new DateTime('2024-01-01');
$dt2 = new DateTime('2024-12-31');
$interval = $dt1->diff($dt2);
echo $interval->format('%a 天'); // 365 天

// 格式化輸出
echo $dt1->format('Y-m-d H:i:s'); // 2024-01-01 00:00:00

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

優勢:支持時區、夏令時、大數值日期(Year 2038 問題)、鏈式操作、差值精確到年/月/日/時/分/秒。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved