📜  PHP |日期时间 createFromFormat()函数(1)

📅  最后修改于: 2023-12-03 15:18:27.184000             🧑  作者: Mango

PHP |日期时间 createFromFormat()函数

在PHP中,createFromFormat()函数可以解析指定格式的日期时间字符串,并返回一个DateTime对象。

语法
public static DateTime DateTime::createFromFormat ( string $format , string $datetime [, DateTimeZone $timezone ] )
  • $format:指定的日期时间格式
  • $datetime:待解析的日期时间字符串
  • $timezone:可选参数,指定时区
参数说明
  • $format参数说明:

| 代码 | 描述 | | --- | --- | | d | 月份中的某一天,有前导零(01 至 31) | | D | 星期中的第几天,文本表示,3 个字母(Mon 至 Sun)| | j | 月份中的某一天,没有前导零(1 至 31)| | l | 星期中的第几天,完整的文本格式(Sunday 至 Saturday)| | S | 月份中的英语序数后缀,2 个字符(st、nd、rd 或者 th。使用 j 日会使它产生不同的结果)| | w | 星期中的第几天,数字表示(0 表示 Sunday,6 表示 Saturday)| | z | 年份中的第几天(0 至 365)| | W | ISO-8601 格式数字表示的年份中的第几周 | | F | 月份,完整的文本格式(January 至 December)| | M | 月份,3 个字母(Jan 至 Dec)| | m | 数字表示的月份,有前导零(01 至 12)| | n | 数字表示的月份,没有前导零(1 至 12)| | t | 给定月份所应有的天数 | | a | 小写的上午和下午值(am 或 pm)| | A | 大写的上午和下午值(AM 或 PM)| | g | 12 小时格式,没有前导零(1 至 12)| | G | 24 小时格式,没有前导零(0 至 23)| | h | 12 小时格式,有前导零(01 至 12)| | H | 24 小时格式,有前导零(00 至 23)| | i | 分钟,有前导零(00 至 59)| | s | 秒数,有前导零(00 至 59)| | u | 毫秒(从 PHP 5.2.2 开始加入,需要带有 DateTime::RFC微秒时间戳)| | e | 时区标识符(例如 UTC、GMT、 ATL、 PHT 等等,完整列表请参见 时区)。从 PHP 5.1.0 开始你可以使用 DateTimeZone 类创建时区。| | I | 是否为夏令时 | | O | 与格林威治时间相差的小时数(例如 +0200)| | P | 与格林威治时间(GMT)的差别,小时和分钟之间有冒号分隔(例如 +02:00)| | T | 本机所处的时区 | | Z | 时区偏移量,以秒为单位。该值可以是正负整数 | | c | ISO 8601 格式的日期 | | r | RFC 2822 格式的日期 | | U | Unix 时间戳(自 Unix 纪元(January 1 1970 00:00:00 GMT)起的秒数)|

  • $datetime参数说明:待解析的日期时间字符串,必须与$format参数中指定的格式相匹配

  • $timezone参数说明:可选参数,指定时区

示例
$date = DateTime::createFromFormat('Y-m-d H:i:s', '2022-03-18 12:30:00', new DateTimeZone('Asia/Shanghai'));
echo $date->format('Y-m-d H:i:sP');

输出:

2022-03-18 12:30:00+08:00
小结

以上就是使用PHP中的createFromFormat()函数来解析日期时间字符串并生成 DateTime对象的方法介绍。