PHP strptime() 函数用法及示例

PHP Date & Time 函数手册

strptime()函数解析由 strftime() 生成的日期/时间

定义和用法

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

语法

strptime($date, $format)

参数

序号参数及说明
1

date(必需)

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

2

format(必需)

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

返回值

PHP strptime()函数返回一个包含已分析日期的数组(将 date 解析后的数组)。如果失败,此函数将返回布尔值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 - date 中未能通过指定的 format 识别的部分

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 - a.m. 和 p.m. 的时间标记法

  • %R - 24 小时制的时间标记法

  • %S - 秒

  • %t - tab 制表符

  • %T - 当前时间,与 %H:%M:%S 表示法相同

  • %u - 星期几的数字表示(1 到 7),Monday[星期一] = 1。警告:在 Sun Solaris 系统中,Sunday[星期日] = 1

  • %U - 当年包含的周数,从第一个星期日开始,作为第一周的第一天

  • %V - 当年包含的 ISO 8601 格式下的周数(01 到 53),week 1 表示当年的第一周,至少要有四天,且以星期一作为周的第一天

  • %W - 当年包含的周数,从第一个星期一开始,作为第一周的第一天

  • %w - 以十进制数形式表示一周中的某天,Sunday[星期日] = 0

  • %x - 首选的日期表示法,不带时间

  • %X - 首选的时间表示法,不带日期

  • %y - 不包含表示世纪的数字的年份表示(范围从 00 到 99)

  • %Y - 包含表示世纪的数字的年份表示

  • %Z 或 %z - 时区名称或简写

  • %% - 输出一个 % 字符