1 回答

TA貢獻(xiàn)1836條經(jīng)驗 獲得超13個贊
對于您擁有的每個時間戳 - 計算下一個時間戳(添加一周),直到它在當(dāng)前時間戳之后。然后從那些中返回最低的,因為那個將是最接近現(xiàn)在(但也是將來)的。
假設(shè)今天是 2020 年 7 月 22 日星期三。你的 2020-07-21 星期二已經(jīng)過去了,所以添加一周:2020-07-28 星期二 - 它是未來的,所以它是我們的候選者。你的 2020-07-19 星期日也已經(jīng)過去了,所以添加一周:2020-07-26 星期日 - 它是未來的,所以它是第二個候選者。
現(xiàn)在從 2 個候選者中選擇較低的:2020-07-26 星期日。
如果日期過去的時間較長,那么您將需要每周更多次。
像這樣的東西:
<?php
// those are your timestamps: $timestamps = [1595289600, 1595116800];
// $time is optional int for when you want to perform the calculation. defaults to current timestamp
function nextOccurence(array $timestamps, $time = null) {
$now = $time ?? time();
$nextTimestamps = [];
foreach ($timestamps as $timestamp) {
while ($timestamp < $now) {
$timestamp += 604800;
}
$nextTimestamps[] = $timestamp;
}
return min($nextTimestamps);
}
- 1 回答
- 0 關(guān)注
- 109 瀏覽
添加回答
舉報