今天我遇到了一些让我对这个\DateTime::createFromFormat函数的行为感到困惑的事情.
在我的情况下,我有一个字符串,表示以下格式的日期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函数是否缺少如何创建对象的信息?我对此非常困惑.感谢大家的帮助!