无法正确获取日期

时间:2019-02-17 20:15:22

标签: php date

我无法使它正常工作。 我想在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。 我该如何工作?我尝试了一切。 谢谢。

1 个答案:

答案 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'));

Demo

此外,我不知道为什么DateTime()已经可以满足您的所有需求时,为什么同时使用strtotime()DateTime()

echo DateTime::createFromFormat('d/m/Y', '01/04/2018')->modify('+5 days')->format('d/m/Y');

Demo