Hello! 欢迎来到小浪资源网!


如何高效判断特定日期是否在给定时间段内且满足周期性操作条件?


如何高效判断特定日期是否在给定时间段内且满足周期性操作条件?

如何判断某个时间是否在时间段范围内?

对于给定时间段,例如从 2022-1-1 ~ 2022-12-31,每隔 7 天做一次操作,我们需要判断某一时间(例如 2022-8-1)是否在时间段内并且需要进行操作。

对于这个问题,我们可以使用以下高效算法

  1. 获取开始时间属于当前年份的第几天(start)。
  2. 获取今天属于当前年份的第几天(current)。
  3. 使用公式 (current – start) % interval == 0 来判断是否需要执行操作。

具体代码示例如下:

foreach ($data as $key => $item) {     // 获取开始时间属于今年的第几天     $start = date('z', strtotime($item['start_date']));      // 获取今天属于第几天     $current = date("z");      // 算法:(今天的天数 - 开始的天数 ) / 7 的余数是不是 0     if (($current - $start) % $item['interval'] == 0) {         // do something     } }

使用此算法可以有效避免因时间段过长而导致内存溢出的问题。

相关阅读