如何循环几周并找到某些天的确切日期?

时间:2017-11-30 10:44:34

标签: php date calendar recurrence

我正在一个网站上,用户可以每隔X天创建一些事件(其中X是一周中某一天的名字)。然后,他需要输入他想要在未来创建的事件数量。

例如,用户选择每周一和周二,并决定创建150个事件。

这是我到目前为止所做的代码:

// Init the date counter            
$cpt_date_found = 0;

// Number of date to find
$rec_occ = 150;

// Init an ending date far in the future        
$endDate = strtotime('+10 years', time());

// Loop over the weeks
for($i = strtotime('Monday', strtotime(date("d.m.Y"))); $i <= $endDate; $i = strtotime('+1 week', $i)) {

    // -- Monday date found, create the event in the database

    $cpt_date_found++;

    // Break the loop if we have enough dates found
    if($cpt_date_found == $rec_occ) {
        break;
    }

}

此代码查找将来每个星期一的日期,并在达到用户指定的出现次数后中断循环。

我已经输入了将来的结束日期,以确保我可以在用户指定的出现次数结束之前中断循环。

首先,我不确定我的代码的“质量”......我知道打破循环不是最好的主意,我想知道另一种解决方案是否更符合我的需求。

然后,如果用户指定了几天(假设是星期一,星期二和星期五),而不是重复循环次数,是否有办法在每个提供的日期循环一次?

谢谢!

1 个答案:

答案 0 :(得分:0)

以下代码将循环5年。对于这5年中的每个星期,它将生成包含该周每天的<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div lang="fa">0123456789</div>。它会将您的预设数组中的每一天与您要查找的天数进行比较。然后,您可以生成您的事件,之后代码将倒计时一定次数。如果计数器达到零,你就完成了。

DatePeriod