PHP strotime check + 10days到下个月的第一天

时间:2015-07-22 20:50:34

标签: php date strtotime

我需要检查月末是否在10天之内。如果没有,日期应该是下个月的第一天。如果月末在接下来的十天内,那么我需要显示下个月后的第一天。

这是我的代码:

$tenDays = date('Y-m-d', strtotime('+10 days'));
$firstDayNextMonth = date('Y-m-d', strtotime('$tenDays, first day of next month'));

echo"$tenDays";
echo "<br>";
echo "$firstDayNextMonth";

输出结果为:

  

2015年8月1日
  1970-01-01

根据今天的日期2015-07-22,第二行的预期结果应为2015-09-01,而不是1970-01-01

2 个答案:

答案 0 :(得分:3)

停止使用strtotime()进行日期数学运算。那个不是它的用途。使用DateTime()

$firstDayNextMonth = (new DateTime('+10 days'))->modify('first day of next month')->format('Y-m-d');

Demo

答案 1 :(得分:0)

使用00作为日期:

$foo = new DateTime('2015-03-00');
$foo->format('r');

如您所见,3月的0th是2月的最后一天。因此,一个简单的$foo->format('d')将为您提供最后一天的日期。