一年の中で、土日のみ抽出して表示したい時などは DateInterval を一日間隔にセットし、曜日をチェックすれば簡単です。
閏年を考慮した日数分ループさせるか、年が変わったらループを抜けるように設計するのがいいと思います。
こちらのサンプルでは配列として日曜(0)と土曜(6)を指定し、該当する日にちを表示します。
<?php
$year = 2038;
$target = array(0, 6); // 日曜と土曜
$datetime = new DateTime();
$datetime->setTimezone( new DateTimeZone('Asia/Tokyo') );
$datetime->setDate($year, 1, 1);
// 間隔
$interval = new DateInterval('P1D');
// 閏年をチェック
$days = $datetime->format('L') == '1' ? 366 : 365;
$result = array();
for($i=0;$i<$days;$i++){
if( in_array( (int)$datetime->format('w'), $target) ){
$result[] = clone $datetime;
}
$datetime->add($interval);
}
foreach($result as $value){
echo $value->format("Y-m-d l") . "\n";
}
実行結果
2038-01-02 Saturday 2038-01-03 Sunday 2038-01-09 Saturday 2038-01-10 Sunday 2038-01-16 Saturday 2038-01-17 Sunday 2038-01-23 Saturday 2038-01-24 Sunday 2038-01-30 Saturday 2038-01-31 Sunday 2038-02-06 Saturday 2038-02-07 Sunday 2038-02-13 Saturday 2038-02-14 Sunday (以下略)
Similar Posts:
- [PHP]ある曜日の第n週は何日か調べる(国民の祝日)
- [PHP]日付から曜日を割り出す
- [PHP]指定した日時まであと何日(何時間)あるかを調べてカウントダウンする
- [PHP]カレンダーを表示する
- [PHP]次の土日(今週末)の日時を取得する
- [PHP]生年月日(誕生日)から星座を調べる
- [PHP]WordPress用のサイトマップを独自に動的生成
- [PHP]PHPプログラミング学習者が陥りやすい10の失敗