在PHP中添加三个月的日期

时间:2012-03-26 15:33:48

标签: php date strtotime

我有一个名为$effectiveDate的变量,其中包含日期 2012-03-26

我想在这个日期增加三个月并且没有成功。

以下是我的尝试:

$effectiveDate = strtotime("+3 months", strtotime($effectiveDate));

$effectiveDate = strtotime(date("Y-m-d", strtotime($effectiveDate)) . "+3 months");

我做错了什么?两段代码都没有用。

10 个答案:

答案 0 :(得分:156)

将其更改为将为您提供预期的格式:

$effectiveDate = date('Y-m-d', strtotime("+3 months", strtotime($effectiveDate)));

答案 1 :(得分:5)

我认为“没有用”你的意思是它给你一个时间戳而不是格式化的日期,因为你正确地做了:

$effectiveDate = strtotime("+3 months", strtotime($effectiveDate)); // returns timestamp
echo date('Y-m-d',$effectiveDate); // formatted version

答案 2 :(得分:3)

通过连接strtotime()的参数,可以使

Tchoupi's回答更简洁,如下所示:

$effectiveDate = date('Y-m-d', strtotime($effectiveDate . "+3 months") );

(这取决于魔法实施细节,但如果你是不正确的话,你可以随时查看它们。)

答案 3 :(得分:2)

您需要将日期转换为可读值。您可以使用strftime()或date()。

试试这个:

$effectiveDate = strtotime("+3 months", strtotime($effectiveDate));
$effectiveDate = strftime ( '%Y-%m-%d' , $effectiveDate );
echo $effectiveDate;

这应该有效。我更喜欢使用strftime,因为它可以用于您可能想要尝试的本地化。

答案 4 :(得分:2)

这个答案并不完全是针对这个问题的。但是我会添加这个,因为这个问题仍然可以搜索如何从日期添加/减去句号。

$date = new DateTime('now');
$date->modify('+3 month'); // or you can use '-90 day' for deduct
$date = $date->format('Y-m-d h:i:s');
echo $date;

答案 5 :(得分:1)

以下情况应该有效,请试试这个:

$effectiveDate = strtotime("+1 months", strtotime(date("y-m-d")));
echo $time = date("y/m/d", $effectiveDate);

答案 6 :(得分:1)

添加第n天,几个月和几年

$n = 2;
for ($i = 0; $i <= $n; $i++){
    $d = strtotime("$i days");
    $x = strtotime("$i month");
    $y = strtotime("$i year");
    echo "Dates : ".$dates = date('d M Y', "+$d days");
    echo "<br>";
    echo "Months : ".$months = date('M Y', "+$x months");
    echo '<br>';
    echo "Years : ".$years = date('Y', "+$y years");
    echo '<br>';
}

答案 7 :(得分:0)

以下内容应该有效,但您可能需要更改格式:

echo date('l F jS, Y (m-d-Y)', strtotime('+3 months', strtotime($DateToAdjust)));

答案 8 :(得分:0)

您可以使用PHP Simple Libraries中的simpleDate类:

include('../code/simpleDate.php');
$date = new simpleDate();
echo $date->set($effectiveDate)->addMonth(3)->get();

检查library tutorials here

答案 9 :(得分:0)

以下应该工作

$d = strtotime("+1 months",strtotime("2015-05-25"));
echo   date("Y-m-d",$d); // This will print **2015-06-25**