Php 向日期添加月份时出现意外结果
我需要在某个日期后加上3个月,直到超过某个日期:Php 向日期添加月份时出现意外结果,php,date,Php,Date,我需要在某个日期后加上3个月,直到超过某个日期: $next_dt = date('Y-m-d H:i:s', strtotime('2015-12-31 00:00:00')); while($next_dt <= '2016-11-07 00:00:00'){ $next_dt = date('Y-m-d H:i:s', strtotime("+3 months",strtotime($next_dt))); } 但我无法提前知道我需要增加多少个
$next_dt = date('Y-m-d H:i:s', strtotime('2015-12-31 00:00:00'));
while($next_dt <= '2016-11-07 00:00:00'){
$next_dt = date('Y-m-d H:i:s', strtotime("+3 months",strtotime($next_dt)));
}
但我无法提前知道我需要增加多少个月
我该怎么办?使用strotime()和“+1个月”很麻烦,因为它不能完全按照预期工作
更简单地说,strotime(“+1个月”,…)似乎只增加了30天,而不考虑月份。对于某些月份来说,这是一个问题,因为并非所有月份都有30天
我不会用“+1个月”来做这件事,我以前做的是每个月一个接一个地检查,只得到一个月的最后一天,再加上一天。这可能不是最优雅的解决方案,但它更安全。使用strotime()和“+1个月”很麻烦,因为它不能完全按照预期工作
更简单地说,strotime(“+1个月”,…)似乎只增加了30天,而不考虑月份。对于某些月份来说,这是一个问题,因为并非所有月份都有30天
我不会用“+1个月”来做这件事,我以前做的是每个月一个接一个地检查,只得到一个月的最后一天,再加上一天。这可能不是最优雅的解决方案,但更安全
$orig_dt = date('Y-m-d H:i:s', strtotime('2015-12-31 00:00:00'));
$next_dt = date('Y-m-d H:i:s', strtotime("+12 months", strtotime($orig_dt)));