将数字日期转换为日期时间对象


Convert numerical date into Datetime object

只是想知道用以下格式转换日期的最佳方法:02072014(2014年7月2日)到'DateTime对象?我试过:

$date = DateTime::createFromFormat("jMY", $digits);

但这似乎不起作用。我使用这种日期格式是因为它是通过电话键盘输入的。

欢呼,尤恩

createFromFormat()的函数定义

public static DateTime DateTime::createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )

所以你需要做as

$digits = '02072014';
$date = DateTime::createFromFormat('dmY',$digits);
echo $date->format("j M Y");

设置你想要的数据格式

$date->format("j M Y"); 

您使用了错误的格式说明符。从文档中可以看出,j表示没有前导零的日,m表示用英文拼写的月。此外,如果您不希望PHP猜测,则应该传递DateTimeZone

<?php
$digits = "02072014";
$date = DateTime::createFromFormat("dmY", $digits, new DateTimeZone('UTC'));
echo $date->format('Y-m-d');
?>

使用正确的传入字符串格式:

$date = DateTime::createFromFormat( "dmY", $digits );