回答編集履歴
2
「サーバから日付出力」を追記
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時間」として扱う
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()` を使用する方法もあります。
|