在PHP中更改DateTime()偏移量

时间:2014-01-12 09:50:51

标签: php datetime

是否可以在PHP中将DateTime()更改为自定义时差。就像添加它20分钟,每次我打电话new DateTime()我会额外20分钟到当前日期。

我考虑过__construct(),但没有看到如何修复它。

我当然可以使用一个函数,但只是想知道是否可以更改原型new DateTime()

3 个答案:

答案 0 :(得分:2)

是的,有可能:

$date = new DateTime();
$date->modify("+20 minutes"); //or whatever value you want

Example online

答案 1 :(得分:1)

Ilia Rostovtsev的回答是实现目标的好方法。或者,您也可以将DateInterval类与DateTime :: add()一起使用。就个人而言,我更喜欢那个,因为你不需要知道字符串需要看起来像什么,而DateInterval使用像P1d这样的标准一天。

我不会使用继承来获取包含您希望的行为的DateTime类。相反,您可以创建某种包含Ilia代码的工厂(以及用于创建对象的所有其他代码)。间隔可以作为参数添加。如果您需要在将来更改该间隔,同时技术上可以使用20分钟以外的其他间隔,则您添加的间隔,您的20分钟应存储在常量中。

答案 2 :(得分:1)

您可以在一行中完成所有操作: -

$date = (new \DateTime())->add(new \DateInterval('PT20M'));

这将是我的首选方式。

See it working in PHP >= 5.3