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

PHP strtotime() 函數深度解析與實戰範例

     編輯:PHP 綜合知識

函數簽名

int strtotime(string $time [, int $now = time()])

將英文文字敘述的日期時間解析為 Unix 時間戳 (自 1970-01-01 00:00:00 GMT 起的秒數)。

參數說明

  • $time:日期時間字串,支援 GNU 日期輸入格式
  • $now:基準時間戳,預設為當前 time()。可指定其他時間作為相對計算基準

支援的英文關鍵字分類

1. 月份與星期

january, february, march, april, may, june, july, august, september, sept, october, november, december
sunday, monday, tuesday, tues, wednesday, wednes, thursday, thur, thurs, friday, saturday

2. 時間單位

year, month, fortnight(兩週), week, day, hour, minute/min, second/sec
am/pm (上午/下午)

3. 相對時間修飾詞

關鍵字含義範例
+n / -n加減 n 個單位+1 day, -2 weeks
ago往前推算24 hours ago
tomorrow明天同一時間
yesterday昨天同一時間
today / now當前日期時間
last上一個last tuesday
this今天指定時間 / 下一個週期this 7am, this week
next下一個next hour

4. 時區縮寫 (部分)

gmt, utc, est, edt, cst, cdt, pst, pdt, jst, cest 等

實戰範例

<?php
// 基準時間:2009-01-22 09:40:25
$base = strtotime('2009-01-22 09:40:25');

echo date('Y-m-d H:i:s', strtotime('+1 day', $base));      // 2009-01-23 09:40:25
echo date('Y-m-d H:i:s', strtotime('-1 day', $base));      // 2009-01-21 09:40:25
echo date('Y-m-d H:i:s', strtotime('+1 week', $base));     // 2009-01-29 09:40:25
echo date('Y-m-d H:i:s', strtotime('next Thursday', $base)); // 2009-01-29 00:00:00
echo date('Y-m-d H:i:s', strtotime('last Thursday', $base)); // 2009-01-15 00:00:00
?>

版本差異與注意事項

  • PHP 5.1.0 前失敗回傳 -1,之後回傳 false
  • 兩位數年份:00-69 → 2000-2069,70-99 → 1970-1999
  • PHP 5.0 起支援毫秒但會被忽略
  • 建議搭配 date_default_timezone_set() 明確設定時區

進階技巧

第二個參數 $now 可用於「以某歷史時間點為基準推算相對時間」,例如計算「某訂單建立 30 天後」的到期日:

$order_time = strtotime('2023-01-15');
$due_date = strtotime('+30 days', $order_time);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved