有时候,我们想比较日期,如果它是相同的,我们需要显示出来。
本教程解释了我们如何在Angular中比较日期。
如果两个对象是相等的,这意味着值或属性值是相等的。
就Date对象而言,它包含日期和时间,单位是毫秒。
在typescript中,日期数据是用Date 类型来引用的。
让我们创建一个Date对象并使用console.log来打印日期。
console.log(new Date()) //Mon Jun 28 2021 10:51:01 GMT+0530 (India Standard Time)
由于Date对象返回的默认值包含
让我们创建两个日期并使用== 或===比较。
let date1 = new Date("2021-02-21");
let date2 = new Date("2021-02-21");
console.log(date1===date2) //false
console.log(date1==date2) //false
尽管我们创建了两个日期,但当我们使用等价运算符进行比较时,它返回错误。
这篇文章回答了以下问题
- 如何将日期与时间进行比较
- 如何比较没有时间的日期?
- 比较未来和过去的日期?
- 如何判断两个日期是否在同一天?
首先检查如何在Typescripts中检查?
对于日期,你可以使用<,>,==,>=,<=操作符,只用Date.getTime方法来比较日期对象。
在下面的例子中
- 创建两个具有相同值的日期
- 日期对象的比较返回false
- Date.getTime()比较返回true。
这个例子比较了日期和时间是否相等。
let date1 = new Date("2021-02-21");
let date2 = new Date("2021-02-21");
console.log(date1) //Sun Feb 21 2021 05:30:00 GMT+0530 (India Standard Time)
console.log(date2) //Sun Feb 21 2021 05:30:00 GMT+0530 (India Standard Time)
console.log(date1.getTime()) //1613865600000
console.log(date2.getTime()) // 1613865600000
console.log(date1===date2) //false
console.log(date1.getTime()===date2.getTime()) //true
在这个例子中,只比较日期而忽略了时间值。
所以,这种方法是为了设置 我们可以写一个函数来检查年月日是否相等。
let date1 = new Date("2021-02-21");
let date2 = new Date("2021-02-21");
function isDatesEqual(date1, date2) {
return date1.getFullYear() === date2.getFullYear() &&
date1.getMonth() === date2.getMonth() &&
date1.getDate() === date2.getDate();
}
console.log(isDatesEqual(date1,date2));
MomentJS提供了以下方法来比较带或不带时间戳的日期。
isSame: 检查两个时刻日期对象是否相等
moment('2021-02-12').isSame('2021-02-12'); // true
moment('2021-02-12').isSame('2021-02-15'); // false
moment('2021-02-12').isSame('2021-02-10'); // false
isBefore:一个日期在另一个日期之前
moment('2021-02-12').isBefore('2021-02-12'); // false
moment('2021-02-12').isBefore('2021-02-15'); // true
moment('2021-02-12').isBefore('2021-02-10'); // false
isAfter:一个日期在另一个日期之后
moment('2021-02-12').isAfter('2021-02-12'); // false
moment('2021-02-12').isAfter('2021-02-15'); // false
moment('2021-02-12').isAfter('2021-02-10'); // true