回答編集履歴

6

文法の修正

2017/08/22 15:57

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -32,11 +32,11 @@
32
32
 
33
33
 
34
34
 
35
- しかし、この方法には致命的な欠点があります。それは、日時っぽい文字列と日時を表す文字列を区別できないと言うこと、つまりは、それが日として解釈して良いのか判断付かないと言うことです。
35
+ しかし、この方法には致命的な欠点があります。それは、日時っぽい文字列と日時を表す文字列を区別できないと言うこと、つまりは、それが日として解釈して良いのか判断付かないと言うことです。
36
36
 
37
37
 
38
38
 
39
- 実際に.toJSON()やJSON.stringify()した場合、`"2017-08-22T14:58:32.352Z"`という文字列になります。JSON上では、これが元々Dateを表していたのか、それとも初めからこういう文字列だったのかを判断することはできません。JSONにはそういったことが規定されておらず、どこまでも独自のJSONに過ぎないからです。
39
+ 実際に.toJSON()やJSON.stringify()した場合、`"2017-08-22T14:58:32.352Z"`という文字列になります。JSON上では、これが元々Dateを表していたのか、それとも初めからこういう文字列だったのかを判断することはできません。JSONにはそういった日時のデータの場合の表し方が規定されておらず、る文字列としてしか表現しようがないからです。
40
40
 
41
41
 
42
42
 

5

等追加

2017/08/22 15:57

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -142,7 +142,7 @@
142
142
 
143
143
 
144
144
 
145
- なお、Date.parseのブラウザ間の実装の違いが気になる場合は、[Momemnt.js](https://momentjs.com/)を使うことをお勧めします。.NET独自のJSONのDate形式まで対応していますので、どんな形式で作られていようが大抵は対応できます。でも、.NET形式への変換はできないようです。せっかくSurferOnWwwさんが.NETの場合について色々説明してくれているのに、JavaScriptでは実現できる方法が見つけられなくて、ごめんなさい。
145
+ なお、Date.parseのブラウザ間の実装の違いが気になる場合は、[Momemnt.js](https://momentjs.com/)を使うことをお勧めします。.NET独自のJSONのDate形式まで対応していますので、どんな形式で作られていようが大抵は対応できます。でも、.NET形式への変換はできないようです。せっかくSurferOnWwwさんが.NETの場合について色々説明してくれているのに、JavaScriptでは実現できる方法が見つけられなくて、ごめんなさい。
146
146
 
147
147
 
148
148
 

4

とくに???

2017/08/22 15:54

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- ES5準拠のほとんどのブラウザであれば、Date.prototype.toJSONやJSON.stringifyによって文字列化してシリアライズし、デシリアライズではその文字列をDate.parseやnew Dateで読み取ることはできるでしょう。(特に古いブラウザではできません。また、なにやら実装ずれがあるようで、最新のブラウザでも全てのブラウザでできるとは限らないようです。)
9
+ ES5準拠のほとんどのブラウザであれば、Date.prototype.toJSONやJSON.stringifyによって文字列化してシリアライズし、デシリアライズではその文字列をDate.parseやnew Dateで読み取ることはできるでしょう。(古いブラウザではできません。また、なにやら実装ずれがあるようで、最新のブラウザでも全てのブラウザでできるとは限らないようです。)
10
10
 
11
11
 
12
12
 

3

コードが違っていた

2017/08/22 15:53

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -66,7 +66,7 @@
66
66
 
67
67
 
68
68
 
69
- 最初に渡しているものが違うのに、同じようにDateになってしまいます。
69
+ 最初に渡しているものが文字列なのに、同じようにDateになってしまいます。
70
70
 
71
71
 
72
72
 
@@ -110,7 +110,7 @@
110
110
 
111
111
  import YAML from 'js-yaml';
112
112
 
113
- const date = new Date();
113
+ const date = '2017-08-22T14:58:32.352Z';
114
114
 
115
115
  console.log(date);
116
116
 

2

サンプルで使っているのが違うぞ

2017/08/22 15:52

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- ES5準拠のほとんどのブラウザであれば、Date.prototype.toJSONによって文字列化してシリアライズし、デシリアライズではその文字列をDate.parseで読み取ることはできるでしょう。(特に古いブラウザではできません。また、なにやら実装ずれがあるようで、最新のブラウザでも全てのブラウザでできるとは限らないようです。)
9
+ ES5準拠のほとんどのブラウザであれば、Date.prototype.toJSONやJSON.stringifyによって文字列化してシリアライズし、デシリアライズではその文字列をDate.parseやnew Dateで読み取ることはできるでしょう。(特に古いブラウザではできません。また、なにやら実装ずれがあるようで、最新のブラウザでも全てのブラウザでできるとは限らないようです。)
10
10
 
11
11
 
12
12
 

1

全てなのかどうかまでは確認していません。

2017/08/22 15:51

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- ES5準拠であれば、Date.prototype.toJSONによって文字列化してシリアライズし、デシリアライズではその文字列をDate.parseで読み取ることはできるでしょう。(未対応の古いブラウザとかはできません)
9
+ ES5準拠のほとんどのブラウザであれば、Date.prototype.toJSONによって文字列化してシリアライズし、デシリアライズではその文字列をDate.parseで読み取ることはできるでしょう。(特に古いブラウザはできません。また、なにやら実装ずれがあるようで、最新のブラウザでも全てのブラウザでできるとは限らないようです。)
10
10
 
11
11
 
12
12