首页 > 解决方案 > 使用 PHP DateTime 设置年份

问题描述

使用 PHP DateTime,您可以使用 和 等方法->modify() ->add()->sub()操作当前的 DateTime 对象。

还有一些方法允许更新年、月和日,或时、分和秒->setDate()->setTime()

然而,似乎没有任何方法可以单独设置年、月或日。

我是否认为最好的方法是创建一个新的 DateTime 对象并使用以前的对象来填充该setDate()方法?

像这样的东西:

$DateTime2020 = new \DateTime('2020-02-26');
$DateTime2019 = (new \DateTime())->setDate('2019', $DateTime2020->format('m'), $DateTime2020->format('d'));

标签: phpdatetime

解决方案


您可以使用与方法中相同的符号->format(),因此您不需要创建对象并在以后修改它。下面是一个例子:

new \DateTime("$year-01-01")对于动态年份

new \DateTime("this year $month/01")对于动态月份

您可以在此处找到所有可能的值

基本上 DateTime 对象要求所有段都有效,并且在创建新对象期间 php 尝试使用构造函数的参数来猜测段(默认为 2020-01-01 00:00:00),但是当您设置 DateTime(2019) php 识别它是小时:分钟(20:19),所以你必须更具体,这就是为什么我添加了 01-01 ,它指的是月份和日期。


推荐阅读