PHP DateTime::createFromFormat()返回错误的年份

PHP DateTime::createFromFormat()返回错误的年份,php,datetime,Php,Datetime,我正在尝试将一个特定格式的日期时间转换为另一种格式,但由于某些原因,这一年在未来是4年 $date = DateTime::createFromFormat('Y-m-d\TH:m:i.u\Z', '2015-08-30T07:56:28.000Z')->format('Y-m-d'); 这呼应出字符串(10)“2019-08-30” 我已经试过了,它输出正确 $date = new DateTime(); echo $date->format('Y-m-d'); 是什么导致了今

我正在尝试将一个特定格式的日期时间转换为另一种格式,但由于某些原因,这一年在未来是4年

$date = DateTime::createFromFormat('Y-m-d\TH:m:i.u\Z', '2015-08-30T07:56:28.000Z')->format('Y-m-d');
这呼应出
字符串(10)“2019-08-30”

我已经试过了,它输出正确

$date = new DateTime();
echo $date->format('Y-m-d');
是什么导致了今年的错误

$date = DateTime::createFromFormat('Y-m-d\TH:i:s.u\Z', '2015-08-30T07:56:28.000Z')->format('Y-m-d');
i
用于分钟,
s
用于秒<代码>m的有效期为个月。因此,您的字符串被错误地解释

有关要使用的正确格式字符,请参阅

i
用于分钟,
s
用于秒<代码>m的有效期为个月。因此,您的字符串被错误地解释


有关要使用的正确格式字符,请参见

您正在使用“m”作为分钟值。这实际上是个月,因此你的约会时间增加了56个月(大约4年)。用“我”试几分钟。还有,我猜你是想用“s”来表示秒。扩展到@MattGibson小写m表示分钟,大写m表示monthGood spot。不知道我是怎么漏掉的:)@Andrei不,“m”和“m”都是数月的。@Andrei这是错误的//小写的m代表分钟,大写的m代表月//你用“m”代表分钟值。这实际上是个月,因此你的约会时间增加了56个月(大约4年)。用“我”试几分钟。还有,我猜你是想用“s”来表示秒。扩展到@MattGibson小写m表示分钟,大写m表示monthGood spot。不知道我是怎么漏掉的:)@Andrei不,“m”和“m”都是数月的。@Andrei这是错误的//小写的m代表分钟,大写的m代表月份//