回答編集履歴

2

「サーバから日付出力」を追記

2017/03/02 13:38

投稿

think49
think49

スコア18194

answer CHANGED
@@ -1,3 +1,10 @@
1
+ ### サーバから日付出力
2
+
3
+ まず、サーバから日付出力する場合に次のどちらのフォーマットにしてください。
4
+
5
+ - タイムゾーン付きの日付フォーマット
6
+ - UTC日時(世界標準日時)の日付フォーマット
7
+
1
8
  ### ISO 8601
2
9
 
3
10
  サーバから **ISO 8601 形式**の日付文字列を出力できれば、時差なく JavaScript で処理できます。

1

JavaScript の `Date` オブジェクトは内部的に「1970/01/01 0:00からのUTC時間」として扱う

2017/03/02 13:38

投稿

think49
think49

スコア18194

answer CHANGED
@@ -19,6 +19,25 @@
19
19
  console.log(new Date('2017-03-01T07:00:00Z').toString()); // Wed Mar 01 2017 16:00:00 GMT+0900 (東京 (標準時))
20
20
  ```
21
21
 
22
+ なぜなら、JavaScript の `Date` オブジェクトは内部的に「1970/01/01 0:00からのUTC時間」として扱うからです。
23
+
24
+ ```JavaScript
25
+ /**
26
+ * 日本日時
27
+ */
28
+ console.log(new Date('2017-03-01T16:00:00+09:00').getTime()); // 1488351600000
29
+
30
+ /**
31
+ * 中国日時
32
+ */
33
+ console.log(new Date('2017-03-01T15:00:00+08:00').getTime()); // 1488351600000
34
+
35
+ /**
36
+ * 世界標準日時
37
+ */
38
+ console.log(new Date('2017-03-01T07:00:00Z').getTime()); // 1488351600000
39
+ ```
40
+
22
41
  ### Date.UTC()
23
42
 
24
43
  UTC日時が得られれば、`Date.UTC()` を使用する方法もあります。