知識のアウトプットをするブログ

なんでもブログに書き記す

【JavaScript】その日付が今日かどうか判定


f:id:seisyo58:20181112114139j:plain
さきに述べておこう。これは頭の悪いコードだ。

やりたかったこと

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;
}

関連記事

GASについてのほかの記事
seisyo58.hatenablog.com

seisyo58.hatenablog.com

seisyo58.hatenablog.com