我正在尝试从当前日期开始六个月,六个月。
我试过使用:
date('d', strtotime('+6 month', time()));
但它似乎不起作用,总是返回01
。有一个更好的方法吗?
谢谢!
我发现使用DateTime更容易使用:
$datetime = new \DateTime();
$datetime->modify('+6 months');
echo $datetime->format('d');
或者
$datetime = new \DateTime();
$datetime->add(new DateInterval('P6M'));
echo $datetime->format('d');
或 PHP 版本 5.4+
echo (new \DateTime())->add(new \DateInterval('P6M'))->format('d');
如果您仍想使用 strtotime 和 date 函数而不是 DateTime() 对象,则可以使用以下方法:
date('d', strtotime('+6 months'));
您可以将该DateTime
类与该类结合使用DateInterval
:
<?php
$date = new DateTime();
$date->add(new DateInterval('P6M'));
echo $date->format('d M Y');
您不需要传递time()
给 strtotime,因为它是默认值。
除此之外,您的方法是正确的 - 除了您采取date('d')
(这是放出一天)而不是date('m')
一个月,echo date('m', strtotime('+6 month'));
应该这样做。
尽管如此,我还是建议使用DateTime
约翰所说的方式。DateTime
与“旧”日期函数相比有几个优点,例如,当 UNIX 大爆炸以来的秒数不再适合 32 位整数时,它们不会停止工作。