質問編集履歴

2

追記

2018/01/09 08:56

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
File without changes
test CHANGED
@@ -32,6 +32,48 @@
32
32
 
33
33
 
34
34
 
35
+ ### 状況
36
+
37
+ Sampleというモデルで、created_atが`2018-01-01 12:00:00`なデータがDBに保存されているとします。
38
+
39
+ ```PHP
40
+
41
+ $sample = Sample::where('id', '=', 1)->first();
42
+
43
+ dd($sample->created_at, $sample->created_at->copy()->timezone("JST"));
44
+
45
+ ```
46
+
47
+ この時ddで表示されるデータは以下のようになっています。
48
+
49
+ ```
50
+
51
+ Carbon {#487 ▼
52
+
53
+ +"date": "2018-01-01 12:00:00.000000"
54
+
55
+ +"timezone_type": 3
56
+
57
+ +"timezone": "UTC"
58
+
59
+ }
60
+
61
+ Carbon {#521 ▼
62
+
63
+ +"date": "2018-01-01 21:00:00.000000"
64
+
65
+ +"timezone_type": 2
66
+
67
+ +"timezone": "JST"
68
+
69
+ }
70
+
71
+ ```
72
+
73
+ これを、使用箇所ごとにtimezone設定するのではなく、ビューに渡される、またはレスポンスで返されるときにすべてのCarbonのタイムゾーンが一括で指定できるようになりたいのです。
74
+
75
+
76
+
35
77
  ###発生している問題・エラーメッセージ
36
78
 
37
79
  とくになし。

1

考えている方法追記

2018/01/09 08:56

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
File without changes
test CHANGED
@@ -24,6 +24,14 @@
24
24
 
25
25
 
26
26
 
27
+ 考えている方法としては以下のような物があります。
28
+
29
+ - Providerを使って、ログインユーザの設定したタイムゾーンに切り替える(しかしDBから受け取った値自体が書き変わらないのでうまくいかない)
30
+
31
+ - アプリで使用するModel用の中間クラスModelBaseを作り、そのModelBase内でなんとか変換する(`__constructor`をいじってみたが、`__constructor`内ではまだプロパティが空なのでなにもできない)
32
+
33
+
34
+
27
35
  ###発生している問題・エラーメッセージ
28
36
 
29
37
  とくになし。