1日1%成長するブログ

毎日成長するために仕事/プライベートで得た学びをアウトプットするブログです

moment.jsでタイムゾーンを考慮して特定日の始まりと終わりを取得する

JST(日本標準時)で指定日の始まりの日時文字列(RFC3339形式)を取得

//2017-08-26T00:00:00+9:00
moment.tz('2017-08-26', 'Asia/Tokyo').startOf('day').format();

UTC(協定世界時)に変換すると、2017-08-25T15:00:00+0:00になる

JST(日本標準時)で指定日の終わりの日時文字列(RFC3339形式)を取得

//2017-08-26T23:59:59+9:00
moment.tz('2017-08-26', 'Asia/Tokyo').endOf('day').format();

UTC(協定世界時)に変換すると、2017-08-26T14:59:59+0:00になる

つまった所

  • setDefaultTimezoneを指定する方法もあったが、それだと以後作成されるmomentオブジェクトのタイムゾーン全てに影響するので止めた。
  • 最初はmoment(xx).tz の形式でタイムゾーンを指定しようとしてたが、これだとmoment(xx)の部分はブラウザのタイムゾーンを元に作成されてしまう