LoginSignup
1
1

More than 5 years have passed since last update.

意識高いプログラマはブラウザの検証ツールで日付計算する

Last updated at Posted at 2018-10-04

ちょっとした計算をしたい時、プログラマなら電卓とか使わずに検証ツール使っちゃいますよね(白目)。

滅!

すいませんでした。

今年あと何日だっけな…?と思ったとき、さすがに電卓とかで計算しづらいので、ブラウザの検証ツールで計算しようとして罠にハマったので、未来の自分に向けて書き残しておきます。

TL;DR

$ Math.ceil((new Date("2018-12-31") - new Date()) / (60 * 60 * 24 * 1000))

↑↑に至るまでちょっとハマりました。

まずは年末を取得する

$ d = new Date(2018, 12, 31)
// Thu Jan 31 2019 00:00:00 GMT+0900 (日本標準時)

…は?

$ d = new Date(2018, 11, 31)
// Mon Dec 31 2018 00:00:00 GMT+0900 (日本標準時)

ははーん、なるほど。 0月 = 1月 という仕様なのか…。

注: 引数 monthIndex は 0 から始まります。 つまり 1 月 = 0、 12 月 = 11 です。

引数を文字列にすると、意図した結果が返ってくるようです。

$ d = new Date("2018, 12, 31")
// Mon Dec 31 2018 00:00:00 GMT+0900 (日本標準時)

ここから今日の日付けを引いて、日数に変換すればOK。 new Date(2018, 12, 31) - new Date() の返り値はミリ秒なので、 1000 * 60 * 60 * 24 で割ればOKです。

$ Math.ceil((new Date("2018-12-31") - new Date()) / (1000 * 60 * 60 * 24))
// 88(日)
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1