我正在设置定期事件模型,例如
event: {
id: 1,
name: 'event name',
date: '2017-04-22', // First occurrence of the event
frequency: 'weekly'
}
目标是能够根据给定日期计算事件的上一次和下一次出现,例如。
getLastOccurrance('2017-06-29') // Would return '2017-06-24'
getNextOccurrance('2017-06-29') // Would return '2017-07-01'
如果我能以某种方式在事件的雄辩查询中返回上一个和下一个日期,那将是非常棒的。类似的东西:
event: {
id: 1,
name: 'event name',
date: '2017-04-22',
frequency: 'weekly',
last_event: '2017-06-24',
next_event: '2017-07-01'
}
任何建议都会非常感激,我可能会发生完全错误的事情。希望我已经足够好地解释了期望的结果。提前感谢任何可以提供帮助的人。
答案 0 :(得分:1)
我最终使用了php的DateInterval和DatePeriod函数来获取日期数组。这是一个示例:
$start = new DateTime( '2018-08-01' ); // Date to increment from
$end = new DateTime( '2018-10-01' ); // Date to increment up to
$interval = new DateInterval("P2D"); // The increment interval, 2 days
$days = new DatePeriod($start, $interval, $end);
foreach($days as $day)...
答案 1 :(得分:0)
使用碳,
$next_event = Carbon::parse('2017-04-22')->addDays(7);
$last_event = Carbon::parse('2017-04-22')->addDays(-7);
您也可以使用addWeeks
功能:addWeeks(1)
和addWeeks(-1)