【JavaScript】その日付が今日かどうか判定
さきに述べておこう。これは頭の悪いコードだ。
やりたかったこと
JavaScriptで、日付が今日かどうか判定したかった。
判定する変数を作った
ソースコード
日付データを引数として与えると、今日だったらtrue、今日じゃなかったらfalseが返ってくる。
function today_decision(date1) { var year1 = date1.getFullYear();//date1の年を取得 var month1 = date1.getMonth() + 1;//date1の月を取得。月は0-11月で表されるので、+1 var day1 = date1.getDate();//date1の日付を取得 var date2 = new Date();//現在時刻の日付データを生成 var year2 = date2.getFullYear();//date2の年を取得 var month2= date2.getMonth() + 1;//date2の月を取得。月は0-11月で表されるので、+1 var day2 = date2.getDate();//date1の日付を取得 //もし年度がイコールだったら if (year1 == year2){ ///もし月がイコールだったら if (month1 == month2){ //trueかfalseが返る return day1 == day2; } } return false; }
解説
解説として、
return day1 == day2;
の部分で、day1とday2には日付の数値データが格納されていて、それらを比較する。==で同じかを判定できるので、そのtrue、falseをreturnする。
JavaScriptでは、returnが実行された時点で、その関数は終了するので、16行目でreturnしたならば、20行目のreturnは実行されない。
応用 昨日か判定
date2の日付を一日前にしてあげればいい
function yesterday_decision(date1) { var year1 = date1.getFullYear(); var month1 = date1.getMonth() + 1; var day1 = date1.getDate(); var date2 = new Date(); date2.setDate(date2.getDate()-1);//ここで日付を昨日にする var year2 = date2.getFullYear(); var month2= date2.getMonth() + 1; var day2 = date2.getDate(); if (year1 == year2){ if (month1 == month2){ return day1 == day2; } } return false; }