此函数自 PHP 8.1.0 起已弃用。强烈建议不要依赖此函数。
strptime() 返回一个包含已解析 timestamp
的数组,或在发生错误时返回 false
。
月份和星期名称以及其他与语言相关的字符串遵循使用 setlocale() (LC_TIME
)设置的当前区域设置。
timestamp
(string)要解析的字符串(例如,从 strftime() 返回的字符串)。
format
(string)在 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 个)。有关闰秒的更多信息,请参阅 » 维基百科关于闰秒的文章。