JS Date 时间比较大小

2021-12-13  本文已影响0人  夹板儿孩

JS 比较两个时间大小

/**
 * 比较时间大小
 * 如: A 时间是否在 B 时间之前
 * 例: new Date("2021-11-11").after(new Date("2020-11-11")) === true
 * @param {Date} date 另一个时间
 * @param {String} format  格式化后再进行比较
 * @return {Boolean}
 */
Date.prototype.before = function(date, format){
  if(!format) return date.getTime() > this.getTime()
  let d1 = new Date(this.format(format)),
      d2 = new Date(date.format(format));
  return d2.getTime() > d1.getTime()
}

/**
 * 比较时间大小
 * 如: A 时间是否在 B 时间之后
 * 例: new Date("2021-11-11").after(new Date("2020-11-11")) === true
 * @param {Date} date 另一个时间
 * @param {String} format  格式化后再进行比较
 * @return {Boolean}
 */
Date.prototype.after = function(date, format){
   return date.before(this, format)
}


/**
 * 比较两个时间是否相等
 * @param {Date} date 另一个时间
 * @param {String} format 格式化后再进行比较
 * @return {Boolean}
 */
Date.prototype.equal = function(date, format){
  if(!format) return date.getTime() === this.getTime()
  let d1 = new Date(this.format(format)),
      d2 = new Date(date.format(format));
  return d2.getTime() === d1.getTime()
}



console.log(new Date("2019-11-11").before(new Date("2020-11-11")));  // true
console.log(new Date("2019-11-11").after(new Date("2020-11-11")));   // false

console.log(new Date("2020-11-11").equal(new Date("2020-11-11")))    // true

其中的 format () 函数来自于我的另一篇时间格式化文章

JS Date 转时间字符串格式化

上一篇下一篇

猜你喜欢

热点阅读