我正试图从当前日期开始的六个月。
我尝试过使用:
date('d', strtotime('+6 month', time()));
但它似乎不起作用,总是返回01
。有更好的方法吗?
谢谢!
答案 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();