時間を N 日ごとに区切って、各期間の開始と終了を見つけます。たとえば、7 日ごとに区切って、現在時刻が存在する期間の開始と終了を見つけます。
単純にタイムスタンプをモジュロにするのではなく、タイムスタンプと開始時刻 (1970-01-01) の間の距離をモジュロにすることに注意してください。
$step = 7;
$zerotime = strtotime('1970-01-01') // 必ずしも 0 であるとは限りません!
$span = ($time - $zerotime) % ($step * 86400);
$stime = $time - $span;
$etime = $stime + ($step * 86400) - 1;
$sdate = date("Y-m-d H:i:s", $stime);
$edate = date("Y-m-d H:i:s", $etime);
?>
注: アジア/重慶タイムゾーン、php 5.2.14
strtotime('1980-5-1 01:00:00') - strtotime('1980-5-1 00:00:00') // 0 を出力します!
作者イデアウ