2014/02/14

ティザーサイトやカウントダウンに使える!JavaScriptで2つの日時から期間を算出する方法

【JavaScript】2つの日時から期間を算出する方法

日時を計算するコードを書く機会があったので,備忘録的にご紹介します.

目次

期間を算出するには

例として,20年前の今日である1994年2月14日から公開日である今日(2014年2月14日)までの日数を計算してみます.

まず,現在の日時を表すDateオブジェクトを生成します.

var todaysDate = new Date();

次に,1994年2月14日を表すDateオブジェクト生成します

var anyDate = new Date("1994/2/14");

そして2つの日時の差を取ります.しかし,このままだとミリ秒単位になっているので,一日あたりのミリ秒で割ります.

さらに,Math.ceil()メソッドを使用して小数点以下の切り上げを行います.

var daysBetween = Math.ceil((todaysDate - anyDate)/(1000*60*60*24));

これで,2つの日時からその間の日数を算出することが出来ます.

a

サンプル

計算結果を出力します

まとめ

日数の計算を行う際に計算順序が入れ替わることがあるような場合では,マイナスの値が出てしまうことがあるので,Math.abs()メソッドを使用して,計算結果の絶対値を取るようにしてください.

上記の基本的な処理で,「あと○○日」といった表示もできるようになります.
さらに計算を加えれば「何ヶ月+何日」といった表示も可能です.