PHP日期函数错误地转换了给定日期

时间:2018-09-29 11:04:19

标签: php string date datetime

我正在从一个csv文件读取当年的日期 并将其传递给以下日期函数。

date('d-m-Y', strtotime($value[5]))

在某些时候,转换后的日期显示为20072009。 以下是

格式的示例

来自文件(月,日,年和时间)->转换后(d-m-y)

6/30/2018 10:10:11 PM -> 30-06-2018
6/30/2018 10:10:40 PM -> 30-06-2018
07-02-18 9:55 -> 18-02-2007
07-02-18 10:01 -> 18-02-2007

执行力更进一步

8/31/2018 6:34:19 PM -> 31-08-2018
8/31/2018 9:43:07 PM -> 31-08-2018
09-01-18 10:00 -> 18-01-2009
09-01-18 10:04 -> 18-01-2009 

2 个答案:

答案 0 :(得分:1)

您可以使用DateTime::createFromFormat()设置输入日期格式。

$dateStr = "07-02-18";
DateTime::createFromFormat('d-m-y', $dateStr)->format('d-m-Y');
// return 02/07/2018

DateTime::createFromFormat('y-m-d', $dateStr)->format('d-m-Y');
// return 02/18/2007

demo中查看结果

答案 1 :(得分:1)

我不确定这里的核心问题。但是,一种快速的解决方法是使用替换功能,因为它显然可以在正斜杠上正常工作:

echo date('d-m-Y', strtotime(str_replace('-', '/', '07-02-18')));

结果:Here