【发布时间】:2015-08-22 03:33:22
【问题描述】:
我有一个“静态”(在特定日期)和“重复”(从特定日期开始,但设置为每周或每隔一周“重复”)的事件数据库。我知道需要有 7 和 14 的间隔,但我不知道如何到达那个点才能找到一个日期 > 今天并吐出来。
这样的例子;
我想查找下一个即将发生的重复事件并说出它们的相关日期。旁注:我坚持使用的数据是 Ymd 的字符串(我知道,我知道),因此 20150821 将是 2015 年 8 月 21 日。
如果今天是 2015 年 8 月 21 日,并且有一个从 8 月 7 日开始的“每隔一个星期五”的重复事件,那么它将是 +14,这将使您到达今天,即 8 月 21 日星期五。
但是如果说从 8 月 19 日开始的“每周三”有一个,我想得到 8 月 26 日星期三的日期并将其吐出。
这需要在未来无限期工作,开始日期永远不会改变。
所以在 2016 年 1 月 1 日运行脚本,我需要知道下一个“每周三”是 2016 年 1 月 6 日。
伪代码:
if(start_date < today_date) {
// start date is in the past
add recurring_inverval to start_date until result >= today_date
echo result
} elseif(start_date > today_date {
// start date is in the future
echo start_date
}
这是我迷失的直到 x 的加法。不确定如何在 if 语句中执行此操作。
也不确定这是否是最好的方法。我知道 PHP 也可以处理复杂的字符串并将它们转换为日期。比如“下周六”
【问题讨论】: