PHP strtotime校验+10天到下个月的第一天
PHP strotime check + 10days to the first day of the next month
我需要检查月底是否在 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-08-01
1970-01-01
根据今天 2015-07-22
的日期,第二行的预期结果应该是 2015-09-01
,而不是 1970-01-01
。
停止使用 strtotime()
计算日期。那是 而不是 它的用途。使用 DateTime()
.
$firstDayNextMonth = (new DateTime('+10 days'))->modify('first day of next month')->format('Y-m-d');
使用 00
作为日期:
$foo = new DateTime('2015-03-00');
$foo->format('r');
如您所见,三月的 0th
是二月的最后一天。因此,一个简单的 $foo->format('d')
即可为您提供该月的最后一天。
我需要检查月底是否在 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-08-01
1970-01-01
根据今天 2015-07-22
的日期,第二行的预期结果应该是 2015-09-01
,而不是 1970-01-01
。
停止使用 strtotime()
计算日期。那是 而不是 它的用途。使用 DateTime()
.
$firstDayNextMonth = (new DateTime('+10 days'))->modify('first day of next month')->format('Y-m-d');
使用 00
作为日期:
$foo = new DateTime('2015-03-00');
$foo->format('r');
如您所见,三月的 0th
是二月的最后一天。因此,一个简单的 $foo->format('d')
即可为您提供该月的最后一天。