我使用的代码在所有日期都可以正常工作,2015-05-31除外。 代码带给我下个月的第一天。 它适用于每个日期,即使每月的日期为31日。
$time = strtotime('2015-07-31');
$final = date("Y-m-1", strtotime("+1 month", $time));
echo $final;
输出将是 - > 2015年8月1日。
由于某些原因,在2015-05-31日期,它返回2015-07-1而不是2015-06-01
$time = strtotime('2015-05-31');
$final = date("Y-m-1", strtotime("+1 month", $time));
echo $final;
可能是因为6-2014有30天,8-2014有31天,所以+1个月增加30天而不是“月”。
我怎样才能在每个日期的下个月的第一天得到正确的答案?
谢谢。
答案 0 :(得分:4)
我认为这应该有效 -
$time = strtotime("2015-05-31");
echo $final = date("Y-m-d", strtotime("first day of next month", $time));
答案 1 :(得分:0)
您可以尝试这样:
<?php
$date = new DateTime('2000-12-31');
$interval = new DateInterval('P1M');
$date->add($interval);
echo $date->format('Y-m-d') . "\n";
$date->add($interval);
echo $date->format('Y-m-d') . "\n";
?>
输出:
2001-01-31
2001-03-03