javascriptで時刻表示のタイムゾーンがおかしくなる場合の確認事項(Moment.js使用)
npm install --save moment-timezoneをしてある前提です。
Timezoneを明示的に指定するには
import * as moment from 'moment-timezone'; moment.tz.setDefault('Asia/Tokyo');
のようにしますが、ここで
datetime = moment().format('YYYY-MM-DDTHH:MM');
のようにして使うと日付入力部品で9時間”先に”進んでしまうことがあります。 これはdatetime内に文字列として保存された日時がどこのタイムゾーンなのかが把握されてしまうために 発生する問題で、明示的に
datetime = moment().format('YYYY-MM-DDTHH:MM+9:00');
としてやることでブラウザもタイムゾーンを理解してくれて正確な時間が表示されるようになります。