我无法使它正常工作。 我想在d / m / Y中输入日期并将其添加为天,并在d / m / y中获得结果,但是php显然还是将日期的原始输入作为m / d / Y
<?php
$ymd = DateTime::createFromFormat('d/m/Y', '01/04/2018')-
>format('d/m/Y');
echo date('d/m/Y', strtotime($ymd. ' + 5 days'));
输出为09/01/2018,但实际上它将日期输入中的04表示为月(月份)。 结果应该是06/04/2018。 我该如何工作?我尝试了一切。 谢谢。
答案 0 :(得分:0)
这是因为strtotime()
将01/04/2018
视为月/日/年,就像看到斜线(/
)一样,采用美国格式。 Datetime()
的操作在这里无关紧要,因为它已经执行并为您创建了日期字符串。如果您要正确添加日期,则需要将该日期转换为strtotime()
可以识别为欧洲日期的格式。
$ymd = DateTime::createFromFormat('d/m/Y', '01/04/2018')->format('m/d/Y');
echo date('d/m/Y', strtotime($ymd. ' + 5 days'));
此外,我不知道为什么DateTime()
已经可以满足您的所有需求时,为什么同时使用strtotime()
和DateTime()
:
echo DateTime::createFromFormat('d/m/Y', '01/04/2018')->modify('+5 days')->format('d/m/Y');