我有一个随机的开始日期(例如2012-09-19)。我想在这个日期之后很容易得到每月周期的结束日期。然而,每月的周期并不完全是30天,而是从一个日期到另一个日期,例如9月19日到10月19日。
考虑到闰年,我想很容易地计算订阅开始后的第5个月或第500个月的开始和结束日期。例如,如果订阅从闰年的2月29日开始,而非闰年的二月到来,则该期间的结束日期应为2月28日,而不会将未来的月度周期替换一天。
这看起来很容易,使用strtotime();
假设初始日期是2012-02-29。
function addToDate($date, $add){
if(!strtotime($date)) return FALSE;
$date = strtotime($date);
return strtotime($add, $date);
}
$result = addToDate('2012-02-29', '+50 months');
echo date('Y-m-d', $result);
将于2016年4月29日公布。