dayjsのタイムゾーン
日本の時刻にする設定
code:ts
import dayjs from 'dayjs';
import utc from 'dayjs/plugin/utc';
import timezone from 'dayjs/plugin/timezone';
dayjs.extend(utc);
dayjs.extend(timezone);
dayjs.tz.setDefault('Asia/Tokyo');
dayjs.tz.setDefaultの仕様に注意
この指定によって変化があるのは、dayjs().tz()の結果である
dayjs()の結果は変わらないことに注意mrsekut.icon
setDefaultなしだと、dayjs().tz('Asia/Tokyo')のように毎回タイムゾーンを指定する必要がある
この指定を省略するための設定がsetDefault
マジであまりに信じられない事実に涙を流してる、フロントエンド内で使う day.js をこういうラップする関数でやってたんだけど .tz() を消しただけで requestAnimationFrame() で計測した FPS が低スペ Android で今まで 1〜5fps だったのが 45fps くらいにまで回復した パフォーマンス問題お前かよ… ref パフォーマンスが良くないらしい
code:ts
// setDefaultなし
dayjs().format() // 2022-08-10T13:04:47+09:00
dayjs().tz().format() // 同上
dayjs().tz('Asia/Tokyo').format() // 同上
// setDefault後
dayjs().format() // 同上
dayjs().tz().format() // 同上
dayjs().tz('Asia/Tokyo').format() // 同上
あれ、なんか思ってた結果と違うな...mrsekut.icon
意味がわからん
出力例
code:ts
dayjs(), // 2022-08-09T10:11:35.584Z
dayjs().tz() // 2022-08-09T10:11:35.584Z
dayjs().tz().format(), // 2022-08-09T19:11:35+09:00
dayjs().add(9, 'hour').tz().format(), // 2022-08-10T04:11:35+09:00
dayjs().add(9, 'hour').format() // 2022-08-10T04:11:35+09:00 なぜ???