我去年编写了一些代码,用于搜索和接收诸如“ January,2018”之类的日期并将其转换为该月的第一天。我现在发现有一个错误,并且我的代码现在返回当前年份,而不是搜索的年份。
$From = "January, 2018";
$From = strtotime($From);
$From = date('Y-m-01', $From);
这将返回此:2019-01-01当我想要2018-01-01
关于如何解决此问题的任何建议?
答案 0 :(得分:2)
您的日期字符串缺少日期,因此您可以自己添加日期并指定日期格式,以创建日期对象。然后,您可以以任何所需的格式显示该日期对象:
$From = "January, 2018";
$From = DateTime::createFromFormat('d, M, Y','1,'.$From);
$From = $From->format('Y-m-d');
// Outputs 2018-01-01
在此处详细了解有关createFromFormat的信息:http://php.net/manual/en/datetime.createfromformat.php