これは私が持っているものです:
function getFirstDayOfWeek($iYear, $iWeekNumber)
{
if ( is_null($iYear) ) $iYear = date('Y');
if ( $iWeekNumber < 10 ) $iWeekNumber = '0'.$iWeekNumber;
$iTime = strtotime($iYear.'W'.$iWeekNumber);
return $iTime;
}
$firstdayofweek = getFirstDayOfWeek($data['year'], $data['week']);
$mDate = date('m', $firstdayofweek);
$dDate = date('d', $firstdayofweek);
$min = mktime(0, 0, 0, $mDate, $dDate, $data['year']);
$max = mktime(23, 59, 59, $dDate, $dDate+6, $data['year']);
後で行う場所:
SELECT id
FROM training_activities
WHERE date time >= {$min}
AND time <= {$max}
今までと同じように、時刻は UNIX タイムスタンプで保存されます。
このコードは正しく機能していません。
$data 年が 2011 年で第 39 週だとしましょう。
これは、26/09-04/10 の 8 日間の日付を示していますが、39 週は 29/09 - 02/10 です。
週を正しく選択して表示するにはどうすればよいですか?