我需要检查月末是否在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
。
答案 0 :(得分:3)
停止使用strtotime()
进行日期数学运算。那个不是它的用途。使用DateTime()
。
$firstDayNextMonth = (new DateTime('+10 days'))->modify('first day of next month')->format('Y-m-d');
答案 1 :(得分:0)
使用00
作为日期:
$foo = new DateTime('2015-03-00');
$foo->format('r');
如您所见,3月的0th
是2月的最后一天。因此,一个简单的$foo->format('d')
将为您提供最后一天的日期。