質問編集履歴

6

対処した方法を追加

2020/09/02 10:39

投稿

kipipipi
kipipipi

スコア60

test CHANGED
File without changes
test CHANGED
@@ -244,9 +244,9 @@
244
244
 
245
245
  --
246
246
 
247
- SQLの時間を記録しているSQLの'created_at'の型をtimestampからdatetimeに変えてやってみましたが変化がありませんでした。
247
+ - SQLの時間を記録しているSQLの'created_at'の型をtimestampからdatetimeに変えてやってみましたが変化がありませんでした。
248
-
248
+
249
- \Log::debug()でsqlから引っ張ってきた配列を確認したところ
249
+ - \Log::debug()でsqlから引っ張ってきた配列を確認したところ
250
250
 
251
251
  ```php
252
252
 
@@ -258,7 +258,9 @@
258
258
 
259
259
  つまり、Vueが何かやっているわけではない様です。(migrateしているので画像と時間が違います)
260
260
 
261
+
262
+
261
- LaravelのタイムゾーンをUTCに戻したところ、当然ながらUTC時間でSQLに保存されました。
263
+ - LaravelのタイムゾーンをUTCに戻したところ、当然ながらUTC時間でSQLに保存されました。
262
264
 
263
265
  また、それに伴い、SQLから引き出すと時間は登録された時間からさらに9時間遡って表示されました。。。
264
266
 

5

対処した方法を追加

2020/09/02 10:39

投稿

kipipipi
kipipipi

スコア60

test CHANGED
File without changes
test CHANGED
@@ -242,6 +242,8 @@
242
242
 
243
243
  **9/2 **
244
244
 
245
+ --
246
+
245
247
  ・SQLの時間を記録しているSQLの'created_at'の型をtimestampからdatetimeに変えてやってみましたが変化がありませんでした。
246
248
 
247
249
  ・\Log::debug()でsqlから引っ張ってきた配列を確認したところ
@@ -255,3 +257,15 @@
255
257
  の様になっており、すでに時間がUTC扱い?の様に見受けられました。
256
258
 
257
259
  つまり、Vueが何かやっているわけではない様です。(migrateしているので画像と時間が違います)
260
+
261
+ ・LaravelのタイムゾーンをUTCに戻したところ、当然ながらUTC時間でSQLに保存されました。
262
+
263
+ また、それに伴い、SQLから引き出すと時間は登録された時間からさらに9時間遡って表示されました。。。
264
+
265
+
266
+
267
+ 現在分かったのは、LaravelがSQLから取り出す瞬間に時間が変換されている様です。
268
+
269
+ cakePHP3を使用していた時はこんなことは体験しなかったので、mysqlが悪いとは思えません。
270
+
271
+ 現在Laravelが何かしらやっていると睨んでいます。

4

対処した方法を追加

2020/09/02 10:37

投稿

kipipipi
kipipipi

スコア60

test CHANGED
File without changes
test CHANGED
@@ -240,7 +240,7 @@
240
240
 
241
241
 
242
242
 
243
- 9/2
243
+ **9/2 **
244
244
 
245
245
  ・SQLの時間を記録しているSQLの'created_at'の型をtimestampからdatetimeに変えてやってみましたが変化がありませんでした。
246
246
 

3

追記しました

2020/09/02 10:00

投稿

kipipipi
kipipipi

スコア60

test CHANGED
File without changes
test CHANGED
@@ -236,6 +236,10 @@
236
236
 
237
237
 
238
238
 
239
+
240
+
241
+
242
+
239
243
  9/2
240
244
 
241
245
  ・SQLの時間を記録しているSQLの'created_at'の型をtimestampからdatetimeに変えてやってみましたが変化がありませんでした。

2

追記しました

2020/09/02 10:00

投稿

kipipipi
kipipipi

スコア60

test CHANGED
File without changes
test CHANGED
@@ -231,3 +231,23 @@
231
231
 
232
232
 
233
233
  ほぼ上記の参考URLに書かれていることを書いているだけですが、よろしくお願いいたします。
234
+
235
+
236
+
237
+
238
+
239
+ 9/2
240
+
241
+ ・SQLの時間を記録しているSQLの'created_at'の型をtimestampからdatetimeに変えてやってみましたが変化がありませんでした。
242
+
243
+ ・\Log::debug()でsqlから引っ張ってきた配列を確認したところ
244
+
245
+ ```php
246
+
247
+ [{"id":1,"project_id":"999999","body":"1\u756a\u76ee\u306e\u30e1\u30c3\u30bb\u30fc\u30b8","created_at":"2020-09-02T06:26:36.000000Z","updated_at":"2020-09-02T06:26:36.000000Z"},省略]
248
+
249
+ ```
250
+
251
+ の様になっており、すでに時間がUTC扱い?の様に見受けられました。
252
+
253
+ つまり、Vueが何かやっているわけではない様です。(migrateしているので画像と時間が違います)

1

追記しました

2020/09/02 09:59

投稿

kipipipi
kipipipi

スコア60

test CHANGED
File without changes
test CHANGED
@@ -19,3 +19,215 @@
19
19
  DBと同じ時間で出力をしたいのですが、方法はありますか?
20
20
 
21
21
  よろしくお願いいたします。
22
+
23
+
24
+
25
+ 問題のchat.blade.php
26
+
27
+ ```php
28
+
29
+ <html>
30
+
31
+ <body>
32
+
33
+ <div id="chat">
34
+
35
+ <textarea v-model="message"></textarea>
36
+
37
+ <br>
38
+
39
+ <button type="button" @click="send">送信</button>
40
+
41
+
42
+
43
+ <div v-for="m in messages">
44
+
45
+ <!-- 登録された日時 -->
46
+
47
+ <span v-text="m.created_at"></span>:&nbsp;
48
+
49
+
50
+
51
+ <!-- id -->
52
+
53
+ <span v-text="m.user_id"></span>:&nbsp;
54
+
55
+
56
+
57
+ <!-- project_id -->
58
+
59
+ <span v-text="m.project_id"></span>:&nbsp;
60
+
61
+
62
+
63
+ <!-- メッセージ内容 -->
64
+
65
+ <span v-text="m.body"></span>
66
+
67
+ </div>
68
+
69
+
70
+
71
+ </div>
72
+
73
+ <script src="{{ asset('/js/app.js') }}"></script>
74
+
75
+
76
+
77
+ <script>
78
+
79
+
80
+
81
+ new Vue({
82
+
83
+ el: '#chat',
84
+
85
+ data: {
86
+
87
+ message: '',
88
+
89
+ messages: [],
90
+
91
+ user_id:'',
92
+
93
+ project_id:'',
94
+
95
+ },
96
+
97
+ methods: {
98
+
99
+ getMessages() {
100
+
101
+ const url = 'パス'
102
+
103
+ axios.get(url)
104
+
105
+ .then((response) => {
106
+
107
+ this.messages = response.data;
108
+
109
+ alert(response.data);
110
+
111
+ });
112
+
113
+
114
+
115
+ },
116
+
117
+ send() {
118
+
119
+
120
+
121
+ // const url = action('Ajax\ChatController@create');
122
+
123
+ const url = 'パス'
124
+
125
+ const params = { message: this.message,user_id:this.user_id,project_id:this.project_id };
126
+
127
+ axios.post(url, params)
128
+
129
+ .then((response) => {
130
+
131
+
132
+
133
+ this.message = '';
134
+
135
+
136
+
137
+ });
138
+
139
+ }
140
+
141
+ },
142
+
143
+ mounted() {
144
+
145
+ this.getMessages();
146
+
147
+ Echo.channel('chat')
148
+
149
+ .listen('MessageCreated', (e) => {
150
+
151
+ this.getMessages();
152
+
153
+ });
154
+
155
+ }
156
+
157
+ });
158
+
159
+
160
+
161
+ </script>
162
+
163
+ </body>
164
+
165
+ </html>
166
+
167
+
168
+
169
+ ```
170
+
171
+ コントローラー
172
+
173
+ ```php
174
+
175
+ <?php
176
+
177
+
178
+
179
+ namespace App\Http\Controllers\Ajax;
180
+
181
+
182
+
183
+ use App\Events\MessageCreated;
184
+
185
+ use App\Http\Controllers\Controller;
186
+
187
+ use Illuminate\Http\Request;
188
+
189
+
190
+
191
+ class ChatController extends Controller
192
+
193
+ {
194
+
195
+ public function index() {
196
+
197
+
198
+
199
+ return \App\Message::orderBy('created_at', 'desc')->get();
200
+
201
+ }
202
+
203
+
204
+
205
+ public function create(Request $request) {
206
+
207
+
208
+
209
+ $message = \App\Message::create([
210
+
211
+ 'body' => $request->message,
212
+
213
+ 'user_id' => 12345,
214
+
215
+ 'project_id' => 99999
216
+
217
+ ]);
218
+
219
+ event(new MessageCreated($message));
220
+
221
+
222
+
223
+ }
224
+
225
+ }
226
+
227
+
228
+
229
+ ```
230
+
231
+
232
+
233
+ ほぼ上記の参考URLに書かれていることを書いているだけですが、よろしくお願いいたします。