1

我使用日期函数在 php 中有一个日期

$date =  date('Y-m-d');

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

例如:如果有人今天添加了一个带有 a 的工作5 days2014-08-04那么截止日期应该是2014-09-06

我打算使用 date 函数获取当前月份,并将值增加 1 以进入下个月,然后在 date 函数中将天数添加到当天。

这看起来很长而且不太对

有人可以告诉我实现这一目标的最佳方法是什么?

4

2 回答 2

1

PHP 社区有幸内置了如此强大的可用功能核心。解决这个问题的方法不计其数,但最简单的往往是最好的。

strtotime从版本 4 开始支持。它很快。很明显。它是高度可维护的。不需要任何更复杂的东西。

$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');
于 2014-08-04T19:05:47.210 回答
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');
于 2014-08-04T18:21:54.520 回答