strtotime()
是 PHP 中的一個函數,用于將任何英文文本的日期時間描述解析為 Unix 時間戳。這個函數非常靈活,支持多種時間格式。默認情況下,strtotime()
會嘗試根據輸入的字符串自動識別和解析時間格式,但也可以通過提供一個可選的第二個參數來指定一個特定的時間格式。
strtotime()
支持的時間格式字符集如下:
!
:排除字符串。$
:結束日期時間。%
:一個或多個字母表示的天數前綴(如 -02-30
)。'
:單引號包圍的日期時間字符串。(
:可選的時間戳前綴(如 1970-01-01 00:00:00
)。-
:日期時間分隔符(默認為空格或 +
)。,
:逗號分隔的日期時間字段。.
:小數點。:
:冒號分隔的時間字段。/
:斜杠分隔的日期時間字段(如 01/02/2000
)。;
:分號分隔的時間字段。@
:Unix 時間戳。A
:上午(AM)或下午(PM)。a
:上午(AM)或下午(PM)的小寫。B
:大寫的上午(AM)或下午(PM)。c
:完整的日期和時間表示,包括毫秒。d
:月份中的第幾天,帶前導零(01 到 31)。D
:星期幾的全名(通常是縮寫)。e
:十進制表示的天數(0 到 6)。F
:月份的全名。g
:12 小時制中的小時,12 小時制(0 到 12)。G
:24 小時制中的小時(0 到 23)。h
:12 小時制中的小時,帶前導零(00 到 12)。H
:24 小時制中的小時(00 到 23)。i
:分鐘,帶前導零(00 到 59)。I
:12 小時制中的上午/下午標識(AM 或 PM)。j
:月份中的第幾天,不帶前導零(1 到 31)。J
:一年中的第幾天(000 到 366)。k
:1000 進制表示的小時(0 到 23)。l
:1000 進制表示的分鐘(0 到 59)。m
:月份,帶前導零(01 到 12)。M
:月份的全名。n
:不帶前導零的月份中的第幾天(1 到 31)。N
:ISO-8601 格式的數字表示的月份中的第幾天(01 到 31)。o
:ISO-8601 格式的日期和時間,包括年中的天數(例如:2004-02-12T15:19:21+00:00)。O
:完整的日期和時間表示,包括時區(例如:2004-02-12T15:19:21+00:00)。P
:大寫的上午/下午標識(AM 或 PM)。r
:完整的 RFC 822 格式的日期時間。s
:秒,帶前導零(00 到 59)。t
:時間分隔符(通常是 :
)。T
:時間分隔符(通常是 :
)。u
:微秒。v
:ISO-8601 格式的數字表示的年中的天數(例如:2004-02-12T15:19:21+00:00)。W
:ISO-8601 格式的數字表示的星期幾(0 到 6)。x
:當前日期,格式為 YYYY-MM-DD
。X
:當前時間,格式為 HH:MM:SS
。Y
:四位數的年份(例如:2004)。y
:兩位數的年份(例如:04)。以下是一些使用 strtotime()
的示例:
// 默認情況下,strtotime() 會嘗試自動解析時間格式
echo strtotime("2022-08-15"); // 輸出:1659916800 (2022-08-15 00:00:00 UTC)
// 通過提供一個時間戳前綴,可以指定一個特定的時間格式
echo strtotime("+1 day", strtotime("2022-08-15")); // 輸出:1659984000 (2022-08-16 00:00:00 UTC)
// 通過提供一個第二個參數來指定一個特定的時間格式
echo strtotime("15 August 2022", "d F Y"); // 輸出:1659916800 (2022-08-15 00:00:00 UTC)
請注意,strtotime()
函數在處理日期和時間時會考慮時區和夏令時等因素。