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 () 函数来自于我的另一篇时间格式化文章