今日の日付を出力するには下記のように記述する。
<?php
print(date('n/j(D)'));
?>
n
は月を取得する
j
は日付けを取得する
D
は英語の曜日(頭3文字)を取得する
timezoneの設定をしていなければ、直接記述することで変更できる。
<?php
date_default_timezone_set('Asia/Tokyo');
print(date('n/j(D)'));
?>
ここで、1日後の日付+曜日を取得するにはどうすれば良いか考える。
<?php
print(date('n/j(D)', strtotime('+1day'));
?>
これで1日後の日付+曜日を取得できた。
※strtotime
とはString to Timestamp
の略で
文字列をTimestamp型に変換できるファンクションのこと。
+1day
なら1日後
-1day
なら1日前
+365day
なら1年後
とすることができる。
strtotime('+1day')
という部分をfor文を用いて365回繰り返せば良さそう。
<?php
for($i=1; $i<=365; $i++); {
$date = strtotime('+' . $i . 'day');
print(date('n/j(D)', $date));
print "\n";
}
?>
これで365日分取得できました。
[ 解説 ]
①変数i=1
として、365以下
で繰り返し、毎回変数iに1を足す
for ($i=1; $i<=365; $i++);
②$date
という変数にstrtotime
の中身を分解して代入
$date = strtotime('+' . $i . 'day');
// strtotime('+1day')の、'+1day'の部分 1を$iとしている
③strtotime
ファンクションを記述していた部分に変数$date
を置く
print(date('n/j(D)', $date));
④見やすいように改行する
print "\n";
ちなみに、{}の部分は下記のように書き換えることもできる
<?php
for ($i=1; $i<=365; $i++):
$date = strtotime('+' . $i . 'day');
print(date('n/j(D)', $date));
print "\n";
endfor;
?>
こちらの方が何に対する閉じタグなのかがわかりやすい。
while文も同じで下記のように記述できる。
while (....):
....
endwhile;
以上です。お疲れ様でした。