今回はJavaScriptで日時の比較をおこなう方法を紹介する。

以下は実際仕事で使ったコードの一部で、現在時刻が当日13時より前の場合と後の場合で処理を分ける例だ。

var now = new Date();

var limitStr = now.getFullYear()+'/'+(now.getMonth()+1)+'/'+now.getDate()+' 13:00:00';
var limit = Date.parse(limitStr);

if(now.getTime() <= limit) { 
  // 現在時刻が指定時刻より前の場合
} else { 
  // 現在時刻が指定時刻より後の場合
}

日時の比較は、1970-01-01 00:00:00 UTCからの経過時間で比較するのがシンプルで良い。

上記の経過時間はDateクラスのgetTime()メソッドで求めることができ、現在時刻はnew Date()から求めることができる。

比較対象となる時刻は3行目、一度変数に日時形式の文字列を保存し、Date.parse()の引数として渡すことで、経過時間を求めることができる。

これらの値を比較することで、簡単に日時を比較しての条件分岐を実装することができる。