質問編集履歴

7

タイムゾーンでの日付の確認 (2) を追記。

2022/04/30 01:35

投稿

punchan36
punchan36

スコア105

test CHANGED
File without changes
test CHANGED
@@ -166,11 +166,6 @@
166
166
  Rails 5.2.6
167
167
  mysql Ver 14.14 Distrib 5.7.36, for Win64 (x86_64)
168
168
 
169
-
170
- ### 新規投稿作成ページで日付を選択する画面
171
-
172
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-04-28/dcc71cfc-e74f-49a0-b002-27f7ea705dad.png)
173
-
174
169
  ### 夜中の 00:00 を回って明らかになった点
175
170
 
176
171
  **1. ビューのエラーメッセージに関する場合分け**
@@ -239,14 +234,14 @@
239
234
  class ApplicationController < ActionController::Base
240
235
  before_action :set_current_user
241
236
 
242
- # タイムゾーンの表示にして
237
+ # タイムゾーン関
243
238
  around_action :user_time_zone, if: @current_user
244
239
 
245
240
  def set_current_user
246
241
  @current_user = User.find_by(id: session[:user_id])
247
242
  end
248
243
 
249
- # タイムゾーンの表示にして
244
+ # タイムゾーン関
250
245
  private
251
246
  def user_time_zone(&block)
252
247
  Time.use_zone(@current_user.time_zone, &block)
@@ -254,93 +249,84 @@
254
249
  end
255
250
  ```
256
251
 
257
- users/new.html.erb
252
+ # タイムゾーンでの日付の確認 (2)
258
- ```Ruby
253
+
259
- <%= form_with url: users_create_path, local: true do |form| %>
254
+ - (GMT-01:00) で 4/29 になるタイムゾーン:Cape Verde (GMT-01:00)
260
-  <div>Time zone</div>
255
+ (日本時間 4/30 09:06 に確認、現地時間は 4/29 23:06 (PM))
261
-  <div>
262
-   <%= form.select :time_zone, time_zone_options_for_select(@user.time_zone, nil, ActiveSupport::TimeZone) %>
263
-  </div>
264
- <% end %>
265
- ```
256
+ ```
266
-
267
- # 4つのタイムゾーンでの日付の確認
268
-
269
- タイムゾーンを切り替えながら、各タイムゾーンで日付がどのように認識されるのかを確認。
270
- 新規投稿作成ページで日付を選択する際に `date < Date.current` を判定しておりますので、そのタイミングで `binding.pry` を挿入し、各タイムゾーンでの日付を確認致しました。
271
-
272
- posts/new.html.erb
273
- ```Ruby
274
- <%= form_with url: "/posts/create", local: true do |form| %>
275
-  <div>Schedule</div>
276
-  <div><%= form.datetime_field :date, type: "date", id: "inputDate", value: @post.date&.strftime("%Y-%m-%d"), placeholder: "Y-m-d" %></div>
277
- <%= form.submit id: "button", type: "submit", value: "Save", onclick: "myfunk()" %>
278
- <% end %>
279
- ```
280
-
281
- post.rb
282
- ```Ruby
283
- validate :pretend_ago
284
-
285
- def pretend_ago
286
- errors.add(:date, 'must be greater than today') if date.present? && date < Date.current
287
- binding.pry
288
- end
289
- ```
290
-
291
-
292
-
293
-
294
- - (GMT-***) で 4/29 になるタイムゾーン:Hawaii (GMT-10:00)
295
- (日本時間 4/29 20:26 に確認を行ったので、現地時間は 4/29 01:26 (AM))
296
- ```
297
- [1] pry(#<Post>)> Date.current
257
+ [1] pry(#<Post>)> Date.current
298
- => Fri, 29 Apr 2022
258
+ => Fri, 29 Apr 2022
299
- [2] pry(#<Post>)> Date.today
259
+ [2] pry(#<Post>)> Date.today
300
- => Fri, 29 Apr 2022
260
+ => Sat, 30 Apr 2022
301
261
  [3] pry(#<Post>)> Date.yesterday
302
262
  => Thu, 28 Apr 2022
303
263
  [4] pry(#<Post>)> Time.current
304
- => Fri, 29 Apr 2022 01:26:20 HST -10:00
264
+ => Fri, 29 Apr 2022 23:06:53 -01 -01:00
305
- ```
265
+ ```
306
-
307
- - (GMT-***) で 4/30 になるタイムゾーン:日本時間で 4/30 の昼過ぎにならないと存在しない。
266
+
308
-
309
- - (GMT+***) で 4/29 になるタイムゾーン:Moscaw (GMT+03:00)
267
+ - (GMT+01:00) で 4/30 になるタイムゾーン:Amsterdam (GMT+01:00)
310
- (日本時間 4/29 23:24 に確認を行ったので、現地時間は 4/29 17:24 (PM))
268
+ (日本時間 4/30 09:09 に確認、現地時間は 4/30 01:09 (AM))
269
+ *サマータイム中で実際は (GMT+2:00) の為、現地時間は 4/30 02:09 (AM)。
311
- ```
270
+ ```
312
- [1] pry(#<Post>)> Date.current
271
+ [1] pry(#<Post>)> Date.current
272
+ => Sat, 30 Apr 2022
273
+ [2] pry(#<Post>)> Date.today
274
+ => Sat, 30 Apr 2022
275
+ [3] pry(#<Post>)> Date.yesterday
313
- => Fri, 29 Apr 2022
276
+ => Fri, 29 Apr 2022
277
+ [4] pry(#<Post>)> Time.current
278
+ => Sat, 30 Apr 2022 02:09:21 CEST +02:00
279
+ ```
280
+
281
+ - (GMT-04:00) で 4/29 になるタイムゾーン:Samara (GMT-04:00)
282
+ (日本時間 4/30 09:16 に確認、現地時間は 4/30 20:16 (PM))
283
+ ```
284
+ [1] pry(#<Post>)> Date.current
285
+ => Fri, 29 Apr 2022
314
- [2] pry(#<Post>)> Date.today
286
+ [2] pry(#<Post>)> Date.today
315
- => Fri, 29 Apr 2022
287
+ => Sat, 30 Apr 2022
316
288
  [3] pry(#<Post>)> Date.yesterday
317
289
  => Thu, 28 Apr 2022
318
290
  [4] pry(#<Post>)> Time.current
319
- => Fri, 29 Apr 2022 17:24:42 MSK +03:00
291
+ => Fri, 29 Apr 2022 20:16:06 -04 -04:00
320
- ```
292
+ ```
321
-
293
+
322
- - (GMT+***) で 4/29 になるタイムゾーン:Tokyo (GMT+09:00)
294
+ - (GMT+04:00) で 4/30 になるタイムゾーン:Samara (GMT+04:00)
323
- (日本時間 4/29 20:20 に確認を行ったので、現地時間は 4/29 20:20 (PM))
295
+ (日本時間 4/30 09:17 に確認、現地時間は 4/30 04:17 (AM))
324
- ```
296
+ ```
325
- [1] pry(#<Post>)> Date.current
297
+ [1] pry(#<Post>)> Date.current
298
+ => Sat, 30 Apr 2022
299
+ [2] pry(#<Post>)> Date.today
300
+ => Sat, 30 Apr 2022
301
+ [3] pry(#<Post>)> Date.yesterday
326
- => Fri, 29 Apr 2022
302
+ => Fri, 29 Apr 2022
303
+ [4] pry(#<Post>)> Time.current
304
+ => Sat, 30 Apr 2022 04:17:58 +04 +04:00
305
+ ```
306
+
307
+ - (GMT-09:00) で 4/29 になるタイムゾーン:Alaska (GMT-09:00)
308
+ (日本時間 4/30 09:19 に確認、現地時間は 4/29 15:19 (PM))
309
+ *サマータイム中で実際は (GMT-8:00) の為、現地時間は 4/29 16:19 (PM)。
310
+ ```
311
+ [1] pry(#<Post>)> Date.current
312
+ => Fri, 29 Apr 2022
327
- [2] pry(#<Post>)> Date.today
313
+ [2] pry(#<Post>)> Date.today
328
- => Fri, 29 Apr 2022
314
+ => Sat, 30 Apr 2022
329
315
  [3] pry(#<Post>)> Date.yesterday
330
316
  => Thu, 28 Apr 2022
331
317
  [4] pry(#<Post>)> Time.current
332
- => Fri, 29 Apr 2022 20:20:02 JST +09:00
318
+ => Fri, 29 Apr 2022 16:19:52 AKDT -08:00
333
- ```
319
+ ```
334
-
320
+
335
- - (GMT+***) で 4/30 になるタイムゾーン:Samoa (GMT+13:00)
321
+ - (GMT+09:00) で 4/30 になるタイムゾーン:Tokyo (GMT+09:00)
336
- (日本時間 4/29 20:24 に確認を行ったので、現地時間は 4/30 00:24 (AM))
322
+ (日本時間 4/30 09:22 に確認、現地時間は 4/30 09:22 (AM))
337
- ```
323
+ ```
338
- [1] pry(#<Post>)> Date.current
324
+ [1] pry(#<Post>)> Date.current
339
- => Sat, 30 Apr 2022
325
+ => Sat, 30 Apr 2022
340
- [2] pry(#<Post>)> Date.today
326
+ [2] pry(#<Post>)> Date.today
327
+ => Sat, 30 Apr 2022
328
+ [3] pry(#<Post>)> Date.yesterday
341
- => Fri, 29 Apr 2022
329
+ => Fri, 29 Apr 2022
342
- [3] pry(#<Post>)> Date.yesterday
343
- => Fri, 29 Apr 2022
344
- [4] pry(#<Post>)> Time.current
330
+ [4] pry(#<Post>)> Time.current
345
- => Sat, 30 Apr 2022 00:24:17 +13 +13:00
331
+ => Sat, 30 Apr 2022 09:22:22 JST +09:00
346
- ```
332
+ ```

6

Moscaw (GMT+03:00) のタイムゾーンで日付を確認した内容を追記。

2022/04/29 14:33

投稿

punchan36
punchan36

スコア105

test CHANGED
File without changes
test CHANGED
@@ -289,6 +289,36 @@
289
289
  ```
290
290
 
291
291
 
292
+
293
+
294
+ - (GMT-***) で 4/29 になるタイムゾーン:Hawaii (GMT-10:00)
295
+ (日本時間 4/29 20:26 に確認を行ったので、現地時間は 4/29 01:26 (AM))
296
+ ```
297
+ [1] pry(#<Post>)> Date.current
298
+ => Fri, 29 Apr 2022
299
+ [2] pry(#<Post>)> Date.today
300
+ => Fri, 29 Apr 2022
301
+ [3] pry(#<Post>)> Date.yesterday
302
+ => Thu, 28 Apr 2022
303
+ [4] pry(#<Post>)> Time.current
304
+ => Fri, 29 Apr 2022 01:26:20 HST -10:00
305
+ ```
306
+
307
+ - (GMT-***) で 4/30 になるタイムゾーン:日本時間で 4/30 の昼過ぎにならないと存在しない。
308
+
309
+ - (GMT+***) で 4/29 になるタイムゾーン:Moscaw (GMT+03:00)
310
+ (日本時間 4/29 23:24 に確認を行ったので、現地時間は 4/29 17:24 (PM))
311
+ ```
312
+ [1] pry(#<Post>)> Date.current
313
+ => Fri, 29 Apr 2022
314
+ [2] pry(#<Post>)> Date.today
315
+ => Fri, 29 Apr 2022
316
+ [3] pry(#<Post>)> Date.yesterday
317
+ => Thu, 28 Apr 2022
318
+ [4] pry(#<Post>)> Time.current
319
+ => Fri, 29 Apr 2022 17:24:42 MSK +03:00
320
+ ```
321
+
292
322
  - (GMT+***) で 4/29 になるタイムゾーン:Tokyo (GMT+09:00)
293
323
  (日本時間 4/29 20:20 に確認を行ったので、現地時間は 4/29 20:20 (PM))
294
324
  ```
@@ -302,19 +332,6 @@
302
332
  => Fri, 29 Apr 2022 20:20:02 JST +09:00
303
333
  ```
304
334
 
305
- - (GMT-***) で 4/29 になるタイムゾーン:Hawaii (GMT-10:00)
306
- (日本時間 4/29 20:26 に確認を行ったので、現地時間は 4/29 01:26 (AM))
307
- ```
308
- [1] pry(#<Post>)> Date.current
309
- => Fri, 29 Apr 2022
310
- [2] pry(#<Post>)> Date.today
311
- => Fri, 29 Apr 2022
312
- [3] pry(#<Post>)> Date.yesterday
313
- => Thu, 28 Apr 2022
314
- [4] pry(#<Post>)> Time.current
315
- => Fri, 29 Apr 2022 01:26:20 HST -10:00
316
- ```
317
-
318
335
  - (GMT+***) で 4/30 になるタイムゾーン:Samoa (GMT+13:00)
319
336
  (日本時間 4/29 20:24 に確認を行ったので、現地時間は 4/30 00:24 (AM))
320
337
  ```
@@ -327,4 +344,3 @@
327
344
  [4] pry(#<Post>)> Time.current
328
345
  => Sat, 30 Apr 2022 00:24:17 +13 +13:00
329
346
  ```
330
- - (GMT-***) で 4/30 になるタイムゾーン:日本時間で 4/30 の昼過ぎにならないと存在しない。

5

「4つのタイムゾーンでの日付の確認」を追記、application_controller.rb 内の if: @current_user を編集致しました。

2022/04/29 12:00

投稿

punchan36
punchan36

スコア105

test CHANGED
File without changes
test CHANGED
@@ -240,7 +240,7 @@
240
240
  before_action :set_current_user
241
241
 
242
242
  # タイムゾーンの表示に関して。
243
- around_action :user_time_zone, if: :set_current_user
243
+ around_action :user_time_zone, if: @current_user
244
244
 
245
245
  def set_current_user
246
246
  @current_user = User.find_by(id: session[:user_id])
@@ -263,3 +263,68 @@
263
263
   </div>
264
264
  <% end %>
265
265
  ```
266
+
267
+ # 4つのタイムゾーンでの日付の確認
268
+
269
+ タイムゾーンを切り替えながら、各タイムゾーンで日付がどのように認識されるのかを確認。
270
+ 新規投稿作成ページで日付を選択する際に `date < Date.current` を判定しておりますので、そのタイミングで `binding.pry` を挿入し、各タイムゾーンでの日付を確認致しました。
271
+
272
+ posts/new.html.erb
273
+ ```Ruby
274
+ <%= form_with url: "/posts/create", local: true do |form| %>
275
+  <div>Schedule</div>
276
+  <div><%= form.datetime_field :date, type: "date", id: "inputDate", value: @post.date&.strftime("%Y-%m-%d"), placeholder: "Y-m-d" %></div>
277
+ <%= form.submit id: "button", type: "submit", value: "Save", onclick: "myfunk()" %>
278
+ <% end %>
279
+ ```
280
+
281
+ post.rb
282
+ ```Ruby
283
+ validate :pretend_ago
284
+
285
+ def pretend_ago
286
+ errors.add(:date, 'must be greater than today') if date.present? && date < Date.current
287
+ binding.pry
288
+ end
289
+ ```
290
+
291
+
292
+ - (GMT+***) で 4/29 になるタイムゾーン:Tokyo (GMT+09:00)
293
+ (日本時間 4/29 20:20 に確認を行ったので、現地時間は 4/29 20:20 (PM))
294
+ ```
295
+ [1] pry(#<Post>)> Date.current
296
+ => Fri, 29 Apr 2022
297
+ [2] pry(#<Post>)> Date.today
298
+ => Fri, 29 Apr 2022
299
+ [3] pry(#<Post>)> Date.yesterday
300
+ => Thu, 28 Apr 2022
301
+ [4] pry(#<Post>)> Time.current
302
+ => Fri, 29 Apr 2022 20:20:02 JST +09:00
303
+ ```
304
+
305
+ - (GMT-***) で 4/29 になるタイムゾーン:Hawaii (GMT-10:00)
306
+ (日本時間 4/29 20:26 に確認を行ったので、現地時間は 4/29 01:26 (AM))
307
+ ```
308
+ [1] pry(#<Post>)> Date.current
309
+ => Fri, 29 Apr 2022
310
+ [2] pry(#<Post>)> Date.today
311
+ => Fri, 29 Apr 2022
312
+ [3] pry(#<Post>)> Date.yesterday
313
+ => Thu, 28 Apr 2022
314
+ [4] pry(#<Post>)> Time.current
315
+ => Fri, 29 Apr 2022 01:26:20 HST -10:00
316
+ ```
317
+
318
+ - (GMT+***) で 4/30 になるタイムゾーン:Samoa (GMT+13:00)
319
+ (日本時間 4/29 20:24 に確認を行ったので、現地時間は 4/30 00:24 (AM))
320
+ ```
321
+ [1] pry(#<Post>)> Date.current
322
+ => Sat, 30 Apr 2022
323
+ [2] pry(#<Post>)> Date.today
324
+ => Fri, 29 Apr 2022
325
+ [3] pry(#<Post>)> Date.yesterday
326
+ => Fri, 29 Apr 2022
327
+ [4] pry(#<Post>)> Time.current
328
+ => Sat, 30 Apr 2022 00:24:17 +13 +13:00
329
+ ```
330
+ - (GMT-***) で 4/30 になるタイムゾーン:日本時間で 4/30 の昼過ぎにならないと存在しない。

4

「タイムゾーンに関する設定」を追記致しました。

2022/04/29 09:46

投稿

punchan36
punchan36

スコア105

test CHANGED
File without changes
test CHANGED
@@ -105,28 +105,6 @@
105
105
  end
106
106
  ```
107
107
 
108
- user.rb
109
- ```Ruby
110
- validates :time_zone, inclusion: { in: ActiveSupport::TimeZone.all.map(&:name) }, presence: true, on: :create
111
- ```
112
-
113
- application_controller.rb
114
- ```Ruby
115
- class ApplicationController < ActionController::Base
116
- before_action :set_current_user
117
- around_action :user_time_zone, if: :set_current_user
118
-
119
- def set_current_user
120
- @current_user = User.find_by(id: session[:user_id])
121
- end
122
-
123
- private
124
- def user_time_zone(&block)
125
- Time.use_zone(@current_user.time_zone, &block)
126
- end
127
- end
128
- ```
129
-
130
108
  scheme.rb
131
109
  ```Ruby
132
110
  create_table "users", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t|
@@ -245,3 +223,43 @@
245
223
  => Fri, 29 Apr 2022 15:00:00 UTC +00:00
246
224
  ```
247
225
  ↑ 日本時間 (GMT+09:00) で 4月30日6:00(AM) にイベントを開始すると投稿したので、9時間遅い UTC に直すと 4月29日21:00(PM) になるはず…。15:00 とは何の時間なのかが分かりません。
226
+
227
+ # タイムゾーンに関する設定
228
+
229
+ タイムゾーンに関しては以下の流れで実装しております。
230
+ [こちらの記事](https://www.bokukoko.info/entry/2018/01/06/141041)を参考に記述致しました。
231
+
232
+ user.rb
233
+ ```Ruby
234
+ validates :time_zone, inclusion: { in: ActiveSupport::TimeZone.all.map(&:name) }, presence: true, on: :create
235
+ ```
236
+
237
+ application_controller.rb
238
+ ```Ruby
239
+ class ApplicationController < ActionController::Base
240
+ before_action :set_current_user
241
+
242
+ # タイムゾーンの表示に関して。
243
+ around_action :user_time_zone, if: :set_current_user
244
+
245
+ def set_current_user
246
+ @current_user = User.find_by(id: session[:user_id])
247
+ end
248
+
249
+ # タイムゾーンの表示に関して。
250
+ private
251
+ def user_time_zone(&block)
252
+ Time.use_zone(@current_user.time_zone, &block)
253
+ end
254
+ end
255
+ ```
256
+
257
+ users/new.html.erb
258
+ ```Ruby
259
+ <%= form_with url: users_create_path, local: true do |form| %>
260
+  <div>Time zone</div>
261
+  <div>
262
+   <%= form.select :time_zone, time_zone_options_for_select(@user.time_zone, nil, ActiveSupport::TimeZone) %>
263
+  </div>
264
+ <% end %>
265
+ ```

3

user.rb と application_controller.rb を追記致しました。

2022/04/29 09:11

投稿

punchan36
punchan36

スコア105

test CHANGED
File without changes
test CHANGED
@@ -105,6 +105,28 @@
105
105
  end
106
106
  ```
107
107
 
108
+ user.rb
109
+ ```Ruby
110
+ validates :time_zone, inclusion: { in: ActiveSupport::TimeZone.all.map(&:name) }, presence: true, on: :create
111
+ ```
112
+
113
+ application_controller.rb
114
+ ```Ruby
115
+ class ApplicationController < ActionController::Base
116
+ before_action :set_current_user
117
+ around_action :user_time_zone, if: :set_current_user
118
+
119
+ def set_current_user
120
+ @current_user = User.find_by(id: session[:user_id])
121
+ end
122
+
123
+ private
124
+ def user_time_zone(&block)
125
+ Time.use_zone(@current_user.time_zone, &block)
126
+ end
127
+ end
128
+ ```
129
+
108
130
  scheme.rb
109
131
  ```Ruby
110
132
  create_table "users", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t|

2

「夜中の 00:00 を回って明らかになった点」を追記致しました。

2022/04/28 16:18

投稿

punchan36
punchan36

スコア105

test CHANGED
File without changes
test CHANGED
@@ -167,7 +167,59 @@
167
167
  mysql Ver 14.14 Distrib 5.7.36, for Win64 (x86_64)
168
168
 
169
169
 
170
- ### 追記
171
-
172
- 新規投稿作成ページで日付を選択する画面
170
+ ### 新規投稿作成ページで日付を選択する画面
171
+
173
172
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-04-28/dcc71cfc-e74f-49a0-b002-27f7ea705dad.png)
173
+
174
+ ### 夜中の 00:00 を回って明らかになった点
175
+
176
+ **1. ビューのエラーメッセージに関する場合分け**
177
+
178
+ - GMT+01:00よりも早いタイムゾーンを選択した場合、いかなるタイムゾーンであっても「今日」を選択すると `Date must be greater than today` のエラーが出る。 4月28日23:59までは「28日」を選択するとエラーが発生。4月29日00:00 (夜中) を回ると「28日」ではエラーが消えるが「29日」を選択するとエラーが発生するようになる(GMT+01:00 でも GMT+09:00 でも同じ)。
179
+ - GMT+00:00よりも遅いタイムゾーンを選択した場合、いかなるタイムゾーンであっても「今日」を選択しても問題なく動く。4月29日00:00 (夜中) を回った後「28日」は「昨日」になるので、これを選択するとエラーが発生するかと思いきや、 `Date must be greater than today` が出ない。何時を過ぎるとエラーが出るようになるのか、要確認。
180
+
181
+ **2. Date.current がタイムゾーン毎にどのような表示になっているか**
182
+
183
+ タイムゾーンに東京(GMT+09:00)を選択した場合(01:00AM に確認)。
184
+ ```
185
+ [1] pry(#<Post>)> Date.current
186
+ => Fri, 29 Apr 2022
187
+ [2] pry(#<Post>)> Time.current
188
+ => Fri, 29 Apr 2022 01:00:39 JST +09:00
189
+ [3] pry(#<Post>)> Time.now
190
+ => 2022-04-29 01:00:43 +0900
191
+ ```
192
+
193
+ タイムゾーンにモスクワ(GMT+03:00)を選択した場合(01:02AM に確認)。
194
+ ```
195
+ [1] pry(#<Post>)> Date.current
196
+ => Thu, 28 Apr 2022
197
+ [2] pry(#<Post>)> Time.current
198
+ => Thu, 28 Apr 2022 19:02:28 MSK +03:00
199
+ [3] pry(#<Post>)> Time.now
200
+ => 2022-04-29 01:02:32 +0900
201
+ ```
202
+
203
+ これを見ると `Date.current` は Rails sysem の timezone +09:00 で動いている訳ではなく、各タイムゾーンのリアルな時間(モスクワであれば +03:00)で判定されているようです。
204
+ ですが以下が希望の仕様ですので、これは希望していた動きです。
205
+ > 海外にいるユーザーはそれぞれのタイムゾーンの時間で(UTC や JST を気にすることなく)イベント開始時間を設定出来る。他のユーザーにはタイムゾーン毎に変換された日時で各々のビューに表示される。
206
+
207
+ **3. タイムゾーンを東京 (GMT+09:00) に設定してイベントを投稿してみた結果**
208
+
209
+ データベースには UTC で保存されておりました。
210
+
211
+ ```
212
+ # イベントを作成した日時
213
+ [1] pry(main)> Post.find(1).created_at
214
+ Post Load (1.3ms) SELECT `posts`.* FROM `posts` WHERE `posts`.`id` = 1 LIMIT 1
215
+ => Thu, 28 Apr 2022 15:43:13 UTC +00:00
216
+ ```
217
+ ↑ 日本時間で 4月29日0:43 にイベントを作成したので、9時間遅い UTC に直すと 4月28日15:43 という表示で合っています。
218
+
219
+ ```
220
+ # イベントが開始される日時
221
+ [2] pry(main)> Post.find(1).date
222
+ Post Load (0.7ms) SELECT `posts`.* FROM `posts` WHERE `posts`.`id` = 1 LIMIT 1
223
+ => Fri, 29 Apr 2022 15:00:00 UTC +00:00
224
+ ```
225
+ ↑ 日本時間 (GMT+09:00) で 4月30日6:00(AM) にイベントを開始すると投稿したので、9時間遅い UTC に直すと 4月29日21:00(PM) になるはず…。15:00 とは何の時間なのかが分かりません。

1

「新規投稿作成ページで日付を選択する画面」を追記致しました。

2022/04/28 14:08

投稿

punchan36
punchan36

スコア105

test CHANGED
File without changes
test CHANGED
@@ -165,3 +165,9 @@
165
165
  RubyGems 3.0.3.1
166
166
  Rails 5.2.6
167
167
  mysql Ver 14.14 Distrib 5.7.36, for Win64 (x86_64)
168
+
169
+
170
+ ### 追記
171
+
172
+ 新規投稿作成ページで日付を選択する画面
173
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-04-28/dcc71cfc-e74f-49a0-b002-27f7ea705dad.png)