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

