PHP strptime() 函数



定义和用法

strptime() 函数接受一个日期字符串(使用 strftime() 生成)和一个格式字符串作为参数,并解析以指定格式给定的字符串。

语法

strptime($date, $format)

参数

序号 参数和描述
1

date(必填)

这是一个表示要解析的日期的字符串值。

2

format(必填)

这是一个表示用于解析日期的格式的字符串值。

返回值

PHP strptime() 函数返回一个包含已解析日期的数组。如果失败,则此函数返回布尔值 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] − 从一月一日开始的天数 (0-365)
  • [unparsed] − 使用指定的格式未识别的日期部分(如有)

PHP 版本

此函数首次在 PHP 5.1.0 版本中引入,并适用于所有更高版本。

示例

以下示例演示了 strptime() 函数的用法 -

在线演示
<?php
   $format = '%A %d %B %G %T';
   $strf = strftime($format);
   $res = strptime($strf, $format);
   print_r($res);
?>

这将产生以下结果 -

 Array ( [tm_sec] => 26 [tm_min] => 35 [tm_hour] => 15 [tm_mday] => 13 [tm_mon] => 4 [tm_year] => 0 [tm_wday] => 3 [tm_yday] => 132 [unparsed] => )

示例

在线演示
<?php
   $format = '%d/%m/%Y %H:%M:%S';
   $strf = strftime($format);
   
   echo "$strf\n";
   
   print_r(strptime($strf, $format));
?>

这将产生以下结果 -

08/06/2020 09:10:32 Array ( [tm_sec] => 32 [tm_min] => 10 [tm_hour] => 9 [tm_mday] => 8 [tm_mon] => 5 [tm_year] => 120 [tm_wday] => 1 [tm_yday] => 159 [unparsed] => )

以下是使用 strftime 格式化日期/时间的各种字符 -

  • %a − 简写星期名称

  • %A − 完整星期名称

  • %b − 简写月份名称

  • %B − 完整月份名称

  • %c − 首选日期和时间表示

  • %C − 世纪数(年份除以 100,范围 00 到 99)

  • %d − 月份中的第几天 (01 到 31)

  • %D − 与 %m/%d/%y 相同

  • %e − 月份中的第几天 (1 到 31)

  • %g − 像 %G,但没有世纪

  • %G − 与 ISO 周数对应的 4 位数年份(参见 %V)。

  • %h − 与 %b 相同

  • %H − 小时,使用 24 小时制 (00 到 23)

  • %I − 小时,使用 12 小时制 (01 到 12)

  • %j − 一年中的第几天 (001 到 366)

  • %m − 月份 (01 到 12)

  • %M − 分钟

  • %n − 换行符

  • %p − 根据给定的时间值,是 am 还是 pm

  • %r − 上午和下午表示的时间

  • %R − 24 小时制的时间

  • %S − 秒

  • %t − 制表符

  • %T − 当前时间,等于 %H:%M:%S

  • %u − 星期几作为数字 (1 到 7),星期一=1。警告:在 Sun Solaris 中,星期日=1

  • %U − 当前年份的周数,从第一个星期日作为第一周的第一天开始

  • %V − 当前年份的 ISO 8601 周数 (01 到 53),其中第 1 周是当前年份至少有 4 天的第一周,并且星期一作为一周的第一天

  • %W − 当前年份的周数,从第一个星期一作为第一周的第一天开始

  • %w − 星期几作为十进制数,星期日=0

  • %x − 首选的无时间的日期表示

  • %X − 首选的无日期的时间表示

  • %y − 不包含世纪的年份 (范围 00 到 99)

  • %Y − 包含世纪的年份

  • %Z 或 %z − 时区或名称或缩写

  • %% − 一个字面上的 % 字符

php_function_reference.htm
广告