使用php将日期添加到下一个/下个月

时间:2014-08-04 18:20:48

标签: php date date-math

我使用日期函数

在php中有一个日期
$date =  date('Y-m-d');

我需要在下个月添加一定天数以显示截止日期。

例如:如果某人今天使用5 days2014-08-04添加了作业,则截止日期应为2014-09-06

我计划使用日期函数获取当前月份,并将值增加1以转到下个月,然后在日期函数中添加当天的天数。

这看起来很冗长而且没那么正确

有人能告诉我实现这个目标的最佳途径是什么?

2 个答案:

答案 0 :(得分:1)

只需使用DateTime()

$date = (new DateTime('2014-08-04'))->modify('next month')->modify('+5 days')->format('Y-m-d');

DateInterval()

$date = (new DateTime('2014-08-04'))->modify('next month')->add(new DateInterval('P5D'))->format('Y-m-d');

或者,或许更适合您的需求:

$days = 5;
$date = (new DateTime())->modify('next month')->modify("{$days} days")->format('Y-m-d'); 

以上两者都需要PHP 5.4+。如果您需要将其转换为PHP 5.3,请告诉我。

以上代码的PHP 5.3版本:

$days = 5;
$date = new DateTime();
$date->modify("next month"); 
$date->modify("{$days} days"); 
$date = $date->format('Y-m-d');

答案 1 :(得分:0)

PHP社区很幸运能够拥有如此强大的可用功能核心。有无数种方法可以解决这个问题,但最简单的方法通常是最好的。

自版本4以来,

strtotime已得到支持。速度很快。很明显。它是高度可维护的。没有必要再复杂了。

$future_stamp = strtotime('+ 1 month 5 days');
$date = date('Y-m-d', $future_stamp);

修改

经过多次阅读和猜测,这可能是你真正想要的。此外,有必要阅读strtotime文档。你可以想出这个。

$future_stamp = strtotime(date('Y-m-d', strtotime('first day of next month')) . ' + 5 days');