2024 年日本 PHP 研討會

strptime

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

strptime 解析由 strftime() 產生的時間/日期

警告

此函式自 PHP 8.1.0 起已被 _棄用_。強烈建議不要依賴此函式。

說明

#[\Deprecated]
strptime(字串 $timestamp, 字串 $format): 陣列|false

strptime() 會傳回一個包含已解析 timestamp 的陣列,或者在發生錯誤時傳回 false

月份和星期名稱以及其他語言相關的字串會遵循使用 setlocale() (LC_TIME) 設定的目前語系。

參數

timestamp (字串)

要解析的字串(例如,從 strftime() 傳回的字串)。

format (字串)

timestamp 中使用的格式(例如,與在 strftime() 中使用的格式相同)。請注意,strftime() 可用的某些格式選項在 strptime() 中可能沒有作用;實際支援的子集將根據所使用的作業系統和 C 程式庫而有所不同。

有關格式選項的更多資訊,請閱讀 strftime() 頁面。

傳回值

傳回一個陣列,或者在失敗時傳回 false

陣列中會傳回以下參數
參數 說明
"tm_sec" 分後的秒數 (0-61)
"tm_min" 時後的分鐘數 (0-59)
"tm_hour" 午夜後的時數 (0-23)
"tm_mday" 月份中的日期 (1-31)
"tm_mon" 一月後的月份數 (0-11)
"tm_year" 1900 年後的年份數
"tm_wday" 星期日後的日數 (0-6)
"tm_yday" 1 月 1 日後的日數 (0-365)
"unparsed" 使用指定的 format 無法辨識的 timestamp 部分

更新日誌

版本 說明
8.1.0 此函式已被棄用。請改用 date_parse_from_format()(用於語系獨立的解析),或 IntlDateFormatter::parse()(用於語系相關的解析)。

範例

範例 #1 strptime() 範例

<?php
$format
= '%d/%m/%Y %H:%M:%S';
$strf = strftime($format);

echo
"$strf\n";

print_r(strptime($strf, $format));
?>

上述範例會輸出類似以下的內容:

03/10/2004 15:54:19

Array
(
    [tm_sec] => 19
    [tm_min] => 54
    [tm_hour] => 15
    [tm_mday] => 3
    [tm_mon] => 9
    [tm_year] => 104
    [tm_wday] => 0
    [tm_yday] => 276
    [unparsed] =>
)

注意事項

注意此函式在 Windows 平台上未實作。

注意:

此函式內部呼叫系統 C 程式庫提供的 strptime() 函式。此函式在不同的作業系統上可能展現出明顯不同的行為。建議使用 date_parse_from_format(),它不會受到這些問題的影響。

注意:

"tm_sec" 包含任何閏秒(目前每年最多 2 秒)。關於閏秒的更多資訊,請參閱 » 閏秒的維基百科條目

另請參閱

新增註釋

使用者貢獻的註釋

此頁面沒有使用者貢獻的註釋。
To Top