[javascript]現在の日付から指定した日付までの日数を求める





ブログタイトルにプログラミングとか書いておいて、1つもそれ関係の記事がなかったのでいい加減投稿しようかと。
勉強中のjavascriptの備忘録です。









<本題>




まず、現在日時の取得方法ですが

var today = new Date();


こんな感じで求めることが出来ます。




次に指定した日時を取得する方法ですが、Date()オブジェクトには次のような引数を渡すことが出来ます。


  • 西暦4桁/月/日
  • 曜日 月 日 西暦4桁 時:分:秒
  • 西暦4桁,月,日
  • 西暦4桁,月,日,時,分,秒,ミリ秒


上記の形式以外にも色々あるみたいです。また、ブラウザによっては挙動が変わることもあるようです。


今回は1つ目の形式を使用してみます。

var apDay = new Date("2013/1/16");



今作成した変数today、apDayをalertで表示すると


こんな感じ。

上手く初期化出来てますね!



あとは2つの変数の差を求めるだけです。
Date()オブジェクト同士の引き算ができるようなので、簡単に出来そうです。

とりあえず変数dに格納。

var d = apDay - today;


これでもう値は取得できたも同然・・・






 が、しかし






このままだと変数dに格納される値はミリ秒単位の数値になってしまいます。




var d = apDay.getTime() - today.getTime();


と同じ処理になるみたいです。


表示したいのは"日数"なので、単位を日に直すために


var dms = 1000 * 60 * 60 * 24;


これで割ります。
小数点以下の値も発生するので、Math()オブジェクトを使って切り捨てたり切り上げたりするとすっきりします。

と、いうことで。
上記のものを全部ひっくるめると

Math.floor(d / dms);


これで求める値がでるはず!
alertしてみました。




うまくいきました。











すごく初歩の初歩ですが、こんな感じで調べていったことはちまちま備忘録として残していきたいと思います。






参考
http://www.openspc2.org/JavaScript/Date/index.html

In by toku_toku3, 2012年1月16日月曜日


Leave a Reply