以下代码将继续返回2018/03/02而不是2018/02/28 我真的不知道为什么。
var_dump(DateTime::createFromFormat('Y 年 m 月', "2018 年 02 月"));
你能解释一下为什么它会返回这样的结果,并且有任何解决方法。
谢谢
答案 0 :(得分:2)
没有明确地提供日期部分将有当前 天
当前日期为30,默认情况下,如果您不提供,则在2月份不提供,因此它会增加2天,这往往会在下个月进行。
如果您希望当月的上一个日期将01
作为日期并像这样使用
<?php
$date = DateTime::createFromFormat('Y 年 m 月 d', "2018 年 02 月 01");
var_dump($date->format("Y-m-t"));
?>
如果你在变量中获得价值,那么最后只需添加01
字符串
$myDate = "2018 年 02 月";
$date = DateTime::createFromFormat('Y 年 m 月 d', $myDate." 01");
答案 1 :(得分:1)
您必须指定一天:
var_dump(DateTime::createFromFormat('Y 年 m 月 d', "2018 年 02 月 01"));
// 2018-02-01