php日期添加跳过天数

php日期添加跳过天数,php,date,Php,Date,我有一个日期,需要加上24个月(而不是2年)。这就是我所尝试的: strtotime("+24 months", $mydate); 如果我的日期是2013年12月20日,那么计算的日期是2015年12月10日,而我的预期日期是2015年12月20日 我知道,幕后发生了什么: 2 Year: 365 days x 2 = 730 days 24 Months: 24 x 30days = 720 days 这给了我失去的10天。但如何克服这个问题 在Java中,我们有Calendar类,它负

我有一个日期,需要加上24个月(而不是2年)。这就是我所尝试的:

strtotime("+24 months", $mydate);
如果我的日期是2013年12月20日,那么计算的日期是2015年12月10日,而我的预期日期是2015年12月20日

我知道,幕后发生了什么:

2 Year: 365 days x 2 = 730 days
24 Months: 24 x 30days = 720 days
这给了我失去的10天。但如何克服这个问题

Java
中,我们有
Calendar
类,它负责这些计算。然而,我在这里什么也没找到

这个问题能解决吗。?或者我需要手动处理它?

在这里应该可以很好地工作:

$date = new DateTime("20th Dec 2013");
echo $date->format("d-m-Y");
$date->add(new DateInterval('P24M'));
echo $date->format("d-m-Y");
输出:

20-12-2013
20-12-2015

旁注:

我无法通过以下方式再现您的错误:

echo date("d-m-Y", strtotime("+24 months", $mydate = strtotime("2013-12-20")));
见:

您应该始终使用DateTime()类来处理类似的事情

i、 e

通过使用DateTime和DateInterval类,您可以确保它将考虑闰年和日期中的其他此类不规则情况

更多信息,请访问:


我希望这能有所帮助。

我无法使用
$mydate=strotime(“2013-12-20”)-也许你的起始日期假设是错误的?您使用的是哪一版本的PHP?当然,您应该尽可能使用DateTime,因为您使用的任何日期方法都可以输入提示
$mydate = "2014-10-01";
echo date('d-m-Y',strtotime("+24 months", strtotime($mydate)));
$mydate = "2014-10-01";
echo date('d-m-Y',strtotime("+24 months", strtotime($mydate)));