今天我遇到了一些令我困惑的事情,\DateTime::createFromFormat
函数的行为。PHP DateTime :: createFromFormat behaviiur
在我的情况下,我有一个字符串,代表以下格式的日期m/Y (05/2017)
。当我想的字符串DateTime对象转换我遇到了以下问题:
$date = \DateTime::createFromFormat('m/Y', '02/2017');
当我转储$date
变量,日期属性里面'2017-03-03 11:06:36.000000'
但是,如果我添加日期在月份之前$date = \DateTime::createFromFormat('d/m/Y', '01/02/2017');
我找回具有正确日期属性的对象。 (不幸的是我不能改变日期的格式并添加一天,它必须是m/Y)。
我想出的修复方法是将月份的第一天连接到日期字符串,我有$date = '01/'.$dateString;
但我宁愿不这样做,因为它是硬编码的。
这里有什么问题? createFromFormat函数是否缺少如何创建对象的信息?我对此很困惑。感谢大家的帮助!
这只是创建对象,后续代码var_dump $日期 - >格式()(格式是一样的日期,所以年月日仍然适用等),你应该看到你期待什么:) – ThisGuyHasTwoThumbs
它填充缺失数据与今天的数据(第31天),并进行调整以跳过无效日期。很有帮助,就像大多数日期函数在PHP中一样。 –