我正在从一个csv文件读取当年的日期 并将其传递给以下日期函数。
date('d-m-Y', strtotime($value[5]))
在某些时候,转换后的日期显示为2007
或2009
。
以下是
来自文件(月,日,年和时间)->转换后(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
答案 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