在知道开始日期和工作日时查找正在进行的事件的日历日期

时间:2014-08-28 08:03:40

标签: php mysql date schedule weekday

我正在尝试创建一个每周循环的独特重复事件的时间表(每个事件都有唯一的标识符,每周重复一次)。

除了收集有关每个活动的其他信息之外,我还会收集每个活动的工作日以及活动开始和结束的日期(日历日期)。

一个例子:

Event:       Go to gym    (the event I plan to do once a week)
Day of Week: Sunday       (day of week event will occur (every Sunday))
Start Date:  2014-09-01   (happens to be a Monday)
End Date:    2015-08-31   (...)

目的是编写一个脚本,该脚本可以处理任意多个事件及其各自的工作日/开始/结束日期,并重新创建描述每个事件将发生的未来日历日期的日历。

So the first date I should see scheduled to go to the gym will be:
2014-09-07
because this is first Sunday following the start date.

总结一下,我正在收集每个活动的工作日以及开始和结束日期。如何将这些数据解析为事件列表,列出事件未来的重现日期?

请记住,一周中的不同日期会发生大量事件,并且会有不同的开始/结束日期。

感谢所有阅读和回复的人。

尝试:

SQL: grouping, different select statements, and stuff
PHP: stuff, date/time stuff, and stuff stuff

1 个答案:

答案 0 :(得分:0)

对于计划中的下一个活动,您可以使用strtotime功能:

strtotime('2014-09-01 next Sunday');

并使用返回的UNIX时间。

但是要完全解决您的问题,可以有很多方法。恕我直言,strtotime周期中使用的for如果按需计算,可能会给您带来很大的开销。如果您将计划存储在数据库中,也许最简单的解决方法是生成日期并在编辑时重新生成它们。

另一方面,日期是头疼,所以计算所有情况的算法可能会大得多。您可以使用根据第一个日期的结果日期差异计算的时间间隔$firstDate = $startDate,或者每周发生一次事件,然后再添加7天。

发布更多详情或解决方案,以发现错误。