回答編集履歴

4

加筆修正

2020/08/24 02:52

投稿

退会済みユーザー
test CHANGED
@@ -79,3 +79,17 @@
79
79
 
80
80
 
81
81
  これで30分刻みのループカウンタができています。
82
+
83
+
84
+
85
+ ---
86
+
87
+
88
+
89
+ [PHP: 配列 関数 - Manual](https://www.php.net/manual/ja/ref.array.php)
90
+
91
+ をよく見てもらって、例えば
92
+
93
+ [PHP: array_key_exists - Manual](https://www.php.net/manual/ja/function.array-key-exists.php)
94
+
95
+ を使って指定のキーに対応する値を配列が持っているかどうかを検査しながらループカウンタを回すのもご検討ください。

3

加筆修正

2020/08/24 02:52

投稿

退会済みユーザー
test CHANGED
@@ -55,3 +55,27 @@
55
55
  DateTimeクラスでは、add()/sub()メソッドでDateIntervalクラスを駆使して
56
56
 
57
57
  正確に時刻の加減算ができます。
58
+
59
+
60
+
61
+ ```php
62
+
63
+ <?php
64
+
65
+
66
+
67
+ $dt = new DateTime('2020-08-23 00:00:00');
68
+
69
+ while ($dt->format('Y-m-d') == '2020-08-23') {
70
+
71
+ echo $dt->format('H:i') . PHP_EOL;
72
+
73
+ $dt = $dt->add(new DateInterval('PT30M'));
74
+
75
+ }
76
+
77
+ ```
78
+
79
+
80
+
81
+ これで30分刻みのループカウンタができています。

2

加筆修正

2020/08/23 13:11

投稿

退会済みユーザー
test CHANGED
@@ -51,3 +51,7 @@
51
51
  時刻用ループカウンタを使って回して、
52
52
 
53
53
  時間帯ごとの判定を行うっていう。
54
+
55
+ DateTimeクラスでは、add()/sub()メソッドでDateIntervalクラスを駆使して
56
+
57
+ 正確に時刻の加減算ができます。

1

加筆修正

2020/08/23 12:51

投稿

退会済みユーザー
test CHANGED
@@ -31,3 +31,23 @@
31
31
  [PHP: DateTime \- Manual](https://www.php.net/manual/ja/class.datetime.php)
32
32
 
33
33
  日付だけ欲しい、時刻だけ欲しい、どういう場合でもformat()メソッドで一発です。
34
+
35
+
36
+
37
+ そういうクエリーを考えるのもコツが必要なので、
38
+
39
+ 基本的な考え方として、
40
+
41
+ 0:00~23:30のループをしながら、
42
+
43
+ テーブルのデータと比較して、
44
+
45
+ 一致する時間帯なら云々、そうでないなら云々
46
+
47
+ ってやればいいんじゃないかな。
48
+
49
+ ループをデータベース読み出しで回さずに、
50
+
51
+ 時刻用ループカウンタを使って回して、
52
+
53
+ 時間帯ごとの判定を行うっていう。