date_create_from_format()是php中的内置函数, 用于根据指定格式解析时间字符串。此函数接受三个参数, 并成功返回新的DateTime或失败返回false。
语法如下:
程序风格
date_create_from_format ( $format, $time, $timezone )
面向对象的风格
DateTime::createFromFormat ( $format, $time, $timezone )
参数:此函数接受上述和以下描述的三个参数:
- $format:它是必需的参数, 用于指定日期格式。以下参数字符串以格式使用。
- $time:
- d和j:每月的某天, 两位数字, 带或不带前导零。
- D和l:一天的文字表示。
- S:每月的英语序数后缀, 两个字符。处理时会忽略它。
- z:一年中的一天(从0开始)
- 月:
- F和M:一个月的文本表示形式, 例如一月或九月
- m和n:一个月的数字表示形式, 带或不带前导零
- 年:
- Y:一年的完整数字表示形式, 4位数字
- y:一年的两位数表示形式(假定范围为1970-2069(含))
- 时间:
- a和A:前子午后
- g和h:一小时的12小时格式, 带或不带前导零
- G和H:一小时的24小时格式, 带或不带前导零
- i:以零开头的分钟
- s:秒, 前导零
- u:微秒(最多六位数)
- 时区:
- e, O, P和T:时区标识符, 或以小时为单位的UTC差异, 或以小时和分钟之间的冒号与UTC的差异, 或时区缩写
- 完整日期/时间:
- U:自Unix时代以来的秒数(格林尼治标准时间1970年1月1日00:00:00)
- 空格和分隔符:
- (空间):一格或一格
- #:以下分隔符号之一:;, :, /, 。、、-, (或)
- ;, :, /, 。, , , -, ( 要么 ):指定的字符。
- ?:随机字节
- *:随机字节, 直到下一个分隔符或数字
- !:将所有字段(年, 月, 日, 小时, 分钟, 秒, 分数和时区信息)重置为Unix Epoch
- |:如果尚未解析所有字段(年, 月, 日, 时, 分, 秒, 分数和时区信息), 则将其重置为Unix Epoch
- +:如果存在此格式说明符, 则字符串中的尾随数据不会导致错误, 但会发出警告
- $time:
- 时间:此参数用作表示时间的字符串。
- $时区:此参数用作代表所需时区的DateTimeZone对象。
返回值:成功时此函数返回一个新的DateTime实例, 失败时返回一个FALSE。
下面的程序说明了PHP中的date_create_from_format()函数。
程序1:
<?php
//Declare a date in given format
$date = date_create_from_format( 'D-M-Y' , 'monday-Feb-2018' );
//Output date in given format
echo date_format( $date , 'y-n-j' );
?>
输出如下:
18-2-5
程序2:
<?php
//Declare a date in given format
$date = DateTime::createFromFormat( 'D-M-Y' , 'monday-Feb-2018' );
//Output date in given format
echo $date ->format( 'Y-m-d' );
?>
输出如下:
2018-02-05
参考: http://php.net/manual/en/datetime.createfromformat.php