日付を比較する
過去・未来を判別する
難しいロジックを考える必要はありません。
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
出典はこちら。