コードに問題がありますか?結果が異なるのはなぜですか?
var mom = moment("23-11-2016 00:00", "DD-MM-YYYY HH:mm");
alert(mom.toISOString());
//result 2016-11-22T17:00:00.000Z
なぜ結果は2016-11-23T00:00:00.000Z
ではありませんか?どうすれば2016-11-23T00:00:00.000Z
の結果が得られますか?
ありがとうございます。
コードに問題がありますか?結果が異なるのはなぜですか?
var mom = moment("23-11-2016 00:00", "DD-MM-YYYY HH:mm");
alert(mom.toISOString());
//result 2016-11-22T17:00:00.000Z
なぜ結果は2016-11-23T00:00:00.000Z
ではありませんか?どうすれば2016-11-23T00:00:00.000Z
の結果が得られますか?
ありがとうございます。
:
デフォルトでは、瞬間を解析し、現地時間で表示されます。
.toISOString()
しばらく
は常にUTCにタイムスタンプを返します。
注意を
.toISOString()
が常に問題となっている瞬間は、ローカルモードになっている場合でも、UTCのタイムスタンプを返すこと。これは、ネイティブJavaScript Date.toISOString()
の仕様と、the ES2015 specificationで概説されているように一貫性を持たせるために行われます。
おそらく、UTCから-7時間ずれています。
現地時間で日付を表示する場合は、format()
を使用してください。あなたの入力文字列は、UTC時刻を表す場合は、そのためデフォルトの瞬間でmoment.utc(String, String);
@VincenzoCのコメントに基づいています。
.toISOString()
現地時間をutcに変換すると、私の国はutcから-7時間ずれます。
実際に、iso形式を取得した後、データベースに保存するとしましょう。
その他の場合は、ローカル時刻としてiso形式を表示する必要があります。その後、ちょうどこの
moment('iso format time').format("DD-MM-YYYY HH:mm")
を行うので、あなたの質問の答えは、説明の上に読み込むことができませんされています。それは正常ですので、問題はあなたのコードではなく、あなたの脳LOGICにあります。 doc saysとして
を使用
は[ '.toISOString()'](http://momentjs.com/docs/ながら、解析し、現地時間で表示されます#/ display/as-iso-string /)は、常にタイムスタンプをUTCで返します。あなたはおそらくUTCから-7時間ずれているでしょう。現地時間で日付を表示する場合は、['format()'](http://momentjs.com/docs/#/displaying/format/)を使用してください。入力文字列がUTC時刻を表す場合は、['moment.utc(String、String);'](http://momentjs.com/docs/#/parsing/utc/) – VincenzoC