質問するログイン新規登録

回答編集履歴

3

追記

2020/02/11 16:03

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -34,4 +34,7 @@
34
34
  1. どのような文字列を渡せば思い通りの結果になるのかを想定する
35
35
  2. $iが実際にどのような数字になっているかを確認しながら修正してみる(`var_dump($i);`等で出力してみる)
36
36
 
37
- という2段階の手順で修正してみてください。
37
+ という2段階の手順で修正してみてください。
38
+
39
+ ---
40
+ 1年は365日とは限らない(閏年)ので、strtotime()とyearやmonthを使ってループ条件を指定するか自力で閏年を計算して条件に入れる等の工夫が必要になります。

2

追記

2020/02/11 16:03

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -8,4 +8,30 @@
8
8
  関数の引数については
9
9
  [PHPマニュアル 関数の引数](https://www.php.net/manual/ja/functions.arguments.php)
10
10
  に書いてあるのでこちらも読んでみてください。
11
- > 引数のリストにより関数へ情報を渡すことができます。 このリストは、カンマで区切られた式のリストです。 引数の評価は、左から右の順番で行われます。
11
+ > 引数のリストにより関数へ情報を渡すことができます。 このリストは、カンマで区切られた式のリストです。 引数の評価は、左から右の順番で行われます。
12
+
13
+ 説明とリンクが足りなかったので追記
14
+ ---
15
+ date()の第二引数で渡しているタイムスタンプは`strtotime()`で生成されています。
16
+ [strtotime](https://www.php.net/manual/ja/function.strtotime)
17
+ ここからリンクをたどって行って
18
+ [サポートする日付と時刻の書式 ](https://www.php.net/manual/ja/datetime.formats.php)
19
+ [相対的な書式 ](https://www.php.net/manual/ja/datetime.formats.relative.php)
20
+ を確認してみてください。
21
+
22
+ 例えば
23
+ ```PHP
24
+ echo date("Y-m-d",strtotime('+1day'));
25
+ ```
26
+ とすると、明日の日付が表示され、
27
+ ```PHP
28
+ echo date("Y-m-d",strtotime('+0day'));
29
+ ```
30
+ とすると本日の日付が表示されます。
31
+
32
+ 質問の中では、`'+'.$i.'day'`と言う感じで文字列連結して、動的に数値部分が変わるような仕組みになっているので、
33
+
34
+ 1. どのような文字列を渡せば思い通りの結果になるのかを想定する
35
+ 2. $iが実際にどのような数字になっているかを確認しながら修正してみる(`var_dump($i);`等で出力してみる)
36
+
37
+ という2段階の手順で修正してみてください。

1

追記

2020/02/11 15:55

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -3,4 +3,9 @@
3
3
  ` $day = date('n/j(D)' , strtotime('+' . $i . 'day'));`
4
4
 
5
5
  [PHPマニュアル date()](https://www.php.net/manual/ja/function.date.php)
6
- を参照してみて、サンプルと見比べてみてください。
6
+ を参照してみて、サンプルと見比べてみてください。
7
+
8
+ 関数の引数については
9
+ [PHPマニュアル 関数の引数](https://www.php.net/manual/ja/functions.arguments.php)
10
+ に書いてあるのでこちらも読んでみてください。
11
+ > 引数のリストにより関数へ情報を渡すことができます。 このリストは、カンマで区切られた式のリストです。 引数の評価は、左から右の順番で行われます。