📜  PHP | date_create_from_format()函数(1)

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

PHP | date_create_from_format()函数

date_create_from_format()函数是PHP中用于将一个字符串转换成日期对象的函数。它接收两个参数,第一个是日期格式的字符串,第二个是包含日期字符串的字符串。

语法

date_create_from_format( string $format , string $time [, DateTimeZone $timezone ] ) : DateTime|false

参数说明:

  • $format:日期格式字符串,详细说明如下。
  • $time:包含日期字符串的字符串。
  • $timezone:时区对象,可选。

返回值:

  • 如果转换成功,返回日期对象DateTime
  • 如果转换失败,返回false
日期格式字符串

格式字符串中的各种字符代表不同的日期或时间元素,如下所示:

字符 | 描述 ----|---- d | 月份中的第几天,有前导零(例如01、02、03等) D | 星期几的缩写名称(例如Mon、Tue、Wed等) j | 月份中的第几天,没有前导零(例如1、2、3等) l | 星期几的完整名称(例如Monday、Tuesday、Wednesday等) S | 月份中的后缀,用在日期上(例如1st、2nd、3rd等) F | 月份的完整名称(例如January、February、March等) m | 数字表示的月份,有前导零(例如01、02、03等) M | 月份的缩写名称(例如Jan、Feb、Mar等) n | 数字表示的月份,没有前导零(例如1、2、3等) Y | 四位数的完整表示的年份(例如1998、2002等) y | 两位数的简单表示的年份(例如98、02等) a | 小写的上午和下午(例如am、pm等) A | 大写的上午和下午(例如AM、PM等) g | 12小时制的小时数,没有前导零(例如1、2、3等) G | 24小时制的小时数,没有前导零(例如0、1、2等) h | 12小时制的小时数,有前导零(例如01、02、03等) H | 24小时制的小时数,有前导零(例如00、01、02等) i | 分钟数,有前导零(例如00、01、02等) s | 秒数,有前导零(例如00、01、02等) u | 微秒,有六位数字(例如001234等)

示例
$dateString = '2022-03-28 10:30:00';
$dateObject = date_create_from_format('Y-m-d H:i:s', $dateString);
echo $dateObject->format('Y-m-d H:i:s'); // 输出:2022-03-28 10:30:00

在上面的示例中,日期字符串是2022-03-28 10:30:00,字符串格式是Y-m-d H:i:s,因此可以使用date_create_from_format()函数将其转换成日期对象,并对其进行格式化输出。

注意事项
  • $time参数中的日期格式必须与$format参数指定的日期格式匹配,否则将返回false
  • 时区可以通过第三个参数$timezone来设置,例如:date_create_from_format('Y-m-d H:i:s', '2022-03-28 10:30:00', new DateTimeZone('America/New_York'))。如果$timezone参数省略,则使用PHP默认时区。
  • 日期对象的其它用法可参考PHP手册:http://php.net/manual/zh/class.datetime.php