質問編集履歴

5

追記

2018/09/27 07:14

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -135,3 +135,13 @@
135
135
  フレームワーク間のタイムゾーンの表現の差はいかんともできないので
136
136
 
137
137
  もしうまく Rails の Time.zone からmoment-timezone の setDefault にわたせる方法があれば教えていただきたいです
138
+
139
+
140
+
141
+ 追記:
142
+
143
+
144
+
145
+ 別の質問で Rails 側から 地域/都市 形式のタイムゾーン文字列を取得する方法を教えていただいたので moment を使ってやりたいことができました
146
+
147
+ お答えいただいた方々本当のありがとうございました

4

追記

2018/09/27 07:14

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -85,3 +85,53 @@
85
85
  moment('2018-09-25 12:00:00').utcOffset('540').format();
86
86
 
87
87
  とやったときに日本時間 +900 で 19時間後の 9/26 7:00 という時刻になってほしいです
88
+
89
+
90
+
91
+
92
+
93
+ 追記:
94
+
95
+
96
+
97
+ 結局いろいろ試した結果最初に回答をいただいたとおり offset 加減することにしました
98
+
99
+
100
+
101
+ javascript 単体で見れば moment を使ったほうがきれいにかける気がするのですが
102
+
103
+
104
+
105
+ たとえばハワイのタイムゾーンの場合 Rails 側から渡せる timezone の情報が
106
+
107
+ (GMT-10:00) Hawaii
108
+
109
+ Hawaii
110
+
111
+ Pacific - Honolulu
112
+
113
+ -36000
114
+
115
+ の4つの文字列しかなく最初の3つを setDefault にいれても変わらなかったので
116
+
117
+ 結局オフセットで加減するなら moment じゃなくても Date でいいかなと
118
+
119
+ ```
120
+
121
+ const date = new Date('2018-09-25 12:00:00');
122
+
123
+ date.setTime(date.getTime() - date.getTimezoneOffset() + <%= Time.zone.utc_offset %>);// localに変換
124
+
125
+ ```
126
+
127
+ という感じです
128
+
129
+
130
+
131
+ setDefault の引数のオフセットがとれればよかったのですが…
132
+
133
+
134
+
135
+ フレームワーク間のタイムゾーンの表現の差はいかんともできないので
136
+
137
+ もしうまく Rails の Time.zone からmoment-timezone の setDefault にわたせる方法があれば教えていただきたいです

3

追記

2018/09/25 09:51

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -77,3 +77,11 @@
77
77
  あたりを使えばできるきがするんですが自分の環境では require が undefined になってしまうので
78
78
 
79
79
  JSの範囲内ではできないでしょうか
80
+
81
+
82
+
83
+ 例えばハワイ時間 -1000 として 2018-09-25 12:00:00 を読み込んで
84
+
85
+ moment('2018-09-25 12:00:00').utcOffset('540').format();
86
+
87
+ とやったときに日本時間 +900 で 19時間後の 9/26 7:00 という時刻になってほしいです

2

追記

2018/09/25 07:21

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -51,3 +51,29 @@
51
51
 
52
52
 
53
53
  みたいにタイムゾーン文字列と Date オブジェクトからそのタイムゾーン時刻の出力を得たいです
54
+
55
+
56
+
57
+
58
+
59
+ 追記:
60
+
61
+
62
+
63
+ moment のおかげで
64
+
65
+ moment('2018-09-25 12:00:00').utcOffset(...).format() とすれば
66
+
67
+ 任意のタイムゾーンで出力することはできるようになったんですが
68
+
69
+
70
+
71
+ タイムゾーン情報のない時刻文字列を特定のタイムゾーンとして読み込むことができなくて困ってます
72
+
73
+ var moment = require('moment-timezone');
74
+
75
+ moment.tz.setDefault("Asia/Tokyo");
76
+
77
+ あたりを使えばできるきがするんですが自分の環境では require が undefined になってしまうので
78
+
79
+ JSの範囲内ではできないでしょうか

1

タイトル修正

2018/09/25 07:15

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- [javascript] Date のタイムゾーンについて
1
+ Date のタイムゾーンについて
test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
  var time = new Date('2018-09-25 12:00:00 JST');
48
48
 
49
- ime.toTZformat('UTC'); #Tue Sep 25 2018 3:00:00 UTC
49
+ ime.toTZformat('UTC'); #Tue Sep 25 2018 3:00:00 UTC
50
50
 
51
51
 
52
52