此函式自 PHP 8.1.0 起已被 _棄用_。強烈建議不要依賴此函式。
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 秒)。關於閏秒的更多資訊,請參閱 » 閏秒的維基百科條目。