php将字符串转换为年份中的时间问题

时间:2016-12-10 13:07:14

标签: php date datetime strtotime

我正在尝试在php

中将字符串转换为时间strtotime操作

这是我的代码

echo date("Y-m-d", strtotime('2 January, 2017'));

当我为2 January, 2016转换时,结果为2016-01-02

但是当我为2 January, 2017转换时,结果为2016-01-02,预计为2017-01-02

代码中的问题是什么?我该如何解决这个问题?帮助请

1 个答案:

答案 0 :(得分:3)

改为使用DateTime::createFromFormat

$date = DateTime::createFromFormat('d F, Y', '2 January, 2017');
echo $date->format('Y-m-d');

strtotime无法阅读2 January, 20172 January, 2016产生正确的结果只是因为当前年份。在这种情况下2 January, 2016 === 2 January