在PHP中添加三个月的date

我有一个名为$effectiveDate的variables,其中包含date2012-03-26

我正在尝试增加三个月到这个date,并在它不成功。

这是我所尝试的:

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

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

我究竟做错了什么? 这两个代码的工作。

更改为此会给你预期的格式:

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

我假设“没有工作”,你的意思是它给你一个时间戳,而不是格式化的date,因为你做的是正确的:

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

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

尝试这个:

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

这应该工作。 我更喜欢使用strftime,因为它可以用于本地化,你可能想尝试它。

通过将strtotime()的参数连接起来, Tchoupi的答案可以变得不那么冗长,如下所示:

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

(这依赖于神奇的实现细节,但是如果你不信任,你可以随时查看它们。)

以下应该工作,但您可能需要更改格式:

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

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

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

检查这里的图书馆教程 。

以下应该工作,请尝试这个:

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

以下应该工作

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