在php中添加六个月

时间:2012-12-20 16:51:34

标签: php date datetime

我正试图从当前日期开始的六个月。

我尝试过使用:

date('d', strtotime('+6 month', time()));

但它似乎不起作用,总是返回01。有更好的方法吗?

谢谢!

5 个答案:

答案 0 :(得分:20)

我觉得使用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');

答案 1 :(得分:2)

如果您仍想使用strtotime和date函数而不是DateTime()对象,则以下方法可以使用:

date('d', strtotime('+6 months'));

答案 2 :(得分:1)

您可以将DateTime类与DateInterval类结合使用:

<?php
$date = new DateTime();
$date->add(new DateInterval('P6M'));

echo $date->format('d M Y');

答案 3 :(得分:0)

您无需将time()传递给strtotime,因为它是默认值。

除此之外,您的方法是正确的 - 除了您采取date('d')(这是当天)而不是date('m')这个月,所以echo date('m', strtotime('+6 month'));应该这样做。< / p>

尽管如此,我建议使用约翰所说的DateTime方式。 DateTime比“旧”日期函数有几个优点,例如,当UNIX大爆炸后的秒数不再适合32位整数时,它们不会停止工作。

答案 4 :(得分:0)

您可以使用simpleDate类:

include('../code/simpleDate.php');
$date = new simpleDate();
echo $date->now()->addMonth(6)->get();

检查tutorials here.