此代码:
$expDateObj = DateTime::createFromFormat('m/y', '04/19');
echo $expDateObj->format('Y-m');
echo "<br/>";
$expDateObj = DateTime::createFromFormat('m/y', '05/19');
echo $expDateObj->format('Y-m');
产生这个结果:
2019-05
2019-05
为什么?
上使用PHP 7.0获得了上述内容答案 0 :(得分:4)
当缺少日期的某一部分时,PHP会将缺失的日期默认为当天。今天是7月31日,因此它会使用31
作为日期,为您的31st April 2019
条目04-19
提供...不存在,因此它会转到{{1} }。因此,您的最终结果为1st May 2017
。
您可以通过稍微更改掩码强制PHP将缺失的日期默认为该月的第一天(2019-05
)而不是当前日期:
01