【Javascript】日付のみ比較して大小の結果を返す

Javascriptで日付のみ比較

Javascriptで日付のみ(年、月、日)で比較するメソッドの例です。

Javascriptで日付を比較するためにはgetMonth()やgetDate()などを使って比較演算子で大小を判断する必要があります。

デフォルトで比較するメソッド等は用意されていないため、独自に実装する必要があります。

日付のみで比較するコード例は下記です。

// date1を基準として新しい日付か古い日付かを返す
function compareDate(date1, date2){
  var year1 = date1.getFullYear();
  var month1 = date1.getMonth() + 1;
  var day1 = date1.getDate();

  var year2 = date2.getFullYear();
  var month2= date2.getMonth() + 1;
  var day2 = date2.getDate();

  if (year1 === year2) {
    if (month1 === month2) {
      if(day1 === day2) {
        return 'same'
      }else{
        if(day1 > day2){
          return 'newer'
        }else{
          return 'older'
        }
      }
    } else {
      if(month1 > month2){
        return 'newer'
      }else{
        return 'older'
      }
    }
  } else {
    if(year1 > year2){
      return 'newer'
    }else{
      return 'older'
    }
  }
}

かなり冗長なコードになってしコードになってしまっていますが、とりあえずコピペで使えるかと思います。

date1, date2にはDate型の日付を渡し、date1がdate2より新しい日付か古い日付かを返します。同じ場合は”same”を返します。

月と日までで日付比較したい場合に使えるかと思います。

コメント