重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

を勉強しています
下のコードを実行するとブラウザでは
Sun Nov 01 2020 00:00:00 GMT+0900 (日本標準時)と表示されますが
node.jsでは
2020-10-31T15:00:00.000Zと表示されます
node.jsで出力される記号の意味が解らないのですがブラウザの日付と意味は同じで有ると判断できるものなのでしょうか?

日付の計算で正しい値が出るのか疑問に思い質問しました

コード
const d = new Date(2020, 10);
console.log(d);

A 回答 (3件)

同じ意味と判断できます。



一般的には動作環境の地域設定を参照して、
Date はタイムゾーンに即した文字列になるはずですが、
node.js の方はグリニッジ標準時で表示しているように見えます。

となると日本標準時より9時間前となるので
2020/11/01 00:00:00 JST

2020/10/31 15:00:00 GMT

ISO 8601 での表記方法では、
日付と時刻の間に 'T' を挟み、
タイムゾーンが GMT だと 'Z' で表現するので、
2020/10/31 15:00:00 GMT

2020-10-31T15:00:00.000Z

参考)
https://ja.wikipedia.org/wiki/ISO_8601


余談ではありますが

Date の比較を行う場合は、地域や書式などを一切無視した
toTime() か toISOString() を使うのがよいと思います。
    • good
    • 1
この回答へのお礼

解りやすい解説ありがとうございました
ありがとうございました

お礼日時:2021/08/18 11:50
    • good
    • 1
この回答へのお礼

ありがとうございました

お礼日時:2021/08/18 11:49

NODEjsはサーバーで動いています。



日付の最後に「Z」がついてるので、UTCで戻ってきています。

日本は+9なので、15+9=24なので、表示はあってます。
    • good
    • 1
この回答へのお礼

なるほど、基準にしている時間の違いで9時間の誤差を考慮した時間だったのですね
ありがとうございました

お礼日時:2021/08/18 11:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!