此函数已在 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 秒)。有关闰秒的更多信息,请参阅 » Wikipedia 关于闰秒的文章。