teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

追記

2018/09/27 07:14

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -66,4 +66,9 @@
66
66
  setDefault の引数のオフセットがとれればよかったのですが…
67
67
 
68
68
  フレームワーク間のタイムゾーンの表現の差はいかんともできないので
69
- もしうまく Rails の Time.zone からmoment-timezone の setDefault にわたせる方法があれば教えていただきたいです
69
+ もしうまく Rails の Time.zone からmoment-timezone の setDefault にわたせる方法があれば教えていただきたいです
70
+
71
+ 追記:
72
+
73
+ 別の質問で Rails 側から 地域/都市 形式のタイムゾーン文字列を取得する方法を教えていただいたので moment を使ってやりたいことができました
74
+ お答えいただいた方々本当のありがとうございました

4

追記

2018/09/27 07:14

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -41,4 +41,29 @@
41
41
 
42
42
  例えばハワイ時間 -1000 として 2018-09-25 12:00:00 を読み込んで
43
43
  moment('2018-09-25 12:00:00').utcOffset('540').format();
44
- とやったときに日本時間 +900 で 19時間後の 9/26 7:00 という時刻になってほしいです
44
+ とやったときに日本時間 +900 で 19時間後の 9/26 7:00 という時刻になってほしいです
45
+
46
+
47
+ 追記:
48
+
49
+ 結局いろいろ試した結果最初に回答をいただいたとおり offset 加減することにしました
50
+
51
+ javascript 単体で見れば moment を使ったほうがきれいにかける気がするのですが
52
+
53
+ たとえばハワイのタイムゾーンの場合 Rails 側から渡せる timezone の情報が
54
+ (GMT-10:00) Hawaii
55
+ Hawaii
56
+ Pacific - Honolulu
57
+ -36000
58
+ の4つの文字列しかなく最初の3つを setDefault にいれても変わらなかったので
59
+ 結局オフセットで加減するなら moment じゃなくても Date でいいかなと
60
+ ```
61
+ const date = new Date('2018-09-25 12:00:00');
62
+ date.setTime(date.getTime() - date.getTimezoneOffset() + <%= Time.zone.utc_offset %>);// localに変換
63
+ ```
64
+ という感じです
65
+
66
+ setDefault の引数のオフセットがとれればよかったのですが…
67
+
68
+ フレームワーク間のタイムゾーンの表現の差はいかんともできないので
69
+ もしうまく Rails の Time.zone からmoment-timezone の setDefault にわたせる方法があれば教えていただきたいです

3

追記

2018/09/25 09:51

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -37,4 +37,8 @@
37
37
  var moment = require('moment-timezone');
38
38
  moment.tz.setDefault("Asia/Tokyo");
39
39
  あたりを使えばできるきがするんですが自分の環境では require が undefined になってしまうので
40
- JSの範囲内ではできないでしょうか
40
+ JSの範囲内ではできないでしょうか
41
+
42
+ 例えばハワイ時間 -1000 として 2018-09-25 12:00:00 を読み込んで
43
+ moment('2018-09-25 12:00:00').utcOffset('540').format();
44
+ とやったときに日本時間 +900 で 19時間後の 9/26 7:00 という時刻になってほしいです

2

追記

2018/09/25 07:21

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -24,4 +24,17 @@
24
24
  var time = new Date('2018-09-25 12:00:00 JST');
25
25
  time.toTZformat('UTC'); #Tue Sep 25 2018 3:00:00 UTC
26
26
 
27
- みたいにタイムゾーン文字列と Date オブジェクトからそのタイムゾーン時刻の出力を得たいです
27
+ みたいにタイムゾーン文字列と Date オブジェクトからそのタイムゾーン時刻の出力を得たいです
28
+
29
+
30
+ 追記:
31
+
32
+ moment のおかげで
33
+ moment('2018-09-25 12:00:00').utcOffset(...).format() とすれば
34
+ 任意のタイムゾーンで出力することはできるようになったんですが
35
+
36
+ タイムゾーン情報のない時刻文字列を特定のタイムゾーンとして読み込むことができなくて困ってます
37
+ var moment = require('moment-timezone');
38
+ moment.tz.setDefault("Asia/Tokyo");
39
+ あたりを使えばできるきがするんですが自分の環境では require が undefined になってしまうので
40
+ JSの範囲内ではできないでしょうか

1

タイトル修正

2018/09/25 07:15

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- [javascript] Date のタイムゾーンについて
1
+ Date のタイムゾーンについて
body CHANGED
@@ -22,6 +22,6 @@
22
22
  あと設定ではなく明示的にTZを与えてそのTZ時刻を出力するにはどうすればいいんでしょうか
23
23
 
24
24
  var time = new Date('2018-09-25 12:00:00 JST');
25
- ime.toTZformat('UTC'); #Tue Sep 25 2018 3:00:00 UTC
25
+ ime.toTZformat('UTC'); #Tue Sep 25 2018 3:00:00 UTC
26
26
 
27
27
  みたいにタイムゾーン文字列と Date オブジェクトからそのタイムゾーン時刻の出力を得たいです