knowledge base

マークアップ/フロントエンドエンジニアのWEB制作における備忘録です。平日はWEB屋、休日は社会人劇団の主宰・劇作家をしています。

日付を比較する

過去・未来を判別する

難しいロジックを考える必要はありません。

Dateオブジェクトの特徴を利用すればシンプルなコードで判別できます。

getTimeメソッドで世界協定時 1970年1月1日00:00:00 からの経過ミリ秒が取得できるので、それを用いて比較します。

※下記コードでは、フォームなどから年・月・日を表す値をそれぞれ y, m, d という変数で受け取ったとします(入力値チェックが済んでいるという前提)

var now = new Date().getTime();
var date = new Date(y, m-1, d).getTime();
if(now > date){
     console.log('future');
}else if(now < date){
     console.log('past');
}else{
     console.log('today');
}

というのも、同じ日時を示すDateでも、オブジェクトが異なれば比較してもfalseになるそうです。

new Date(1000000000000) == new Date(1000000000000) // false

出典はこちら。

qiita.com