我们如何检查同一天的2个时间戳?这是我从数据库得到的答复。 我已经比较了当天的整个回复。 如果两个创建的日期(同一天)相等,那么我必须合并事件。
[{ createdAt: Date,
duration: number,
sessionId: string,
events:[]
},
{ createdAt: Date,
duration: number,
sessionId: string ,
events:[]
},
{ createdAt: Date,
duration: number,
sessionId: string ,
events:[]
},
{ createdAt: Date,
duration: number,
sessionId: string ,
events:[]
}]
我不知道该怎么做。我尝试使用新的Date()。getDate()比较日期。
答案 0 :(得分:0)
您可以遍历日期并将Angulars Date Pipe应用于它们。以相同的方式格式化所有格式,例如“ longDate”,然后使用==检查它们是否为同一日期。
https://angular.io/api/common/DatePipe-这是日期管道的链接,您可以使用formatDate()方法。
或者,您可以使用矩型库,但是对于可以通过项目中已有的功能实现的功能而言,此功能相当大。
答案 1 :(得分:0)
if( Date1.getDate() == Date2.getDate()
&& Date1.getMonth() == Date2.getMonth()
&& Date1.getYear() == Date2.getYear()){
//They are on the same day
} else {
// Not on the same day
}
答案 2 :(得分:0)
假设您有Date对象,则可以比较 toDateString 的结果作为本地日期,或者比较 toISOString 的前10个字符作为UTC日期。
例如
function sameLocalDate(d0, d1) {
return d0.toDateString() == d1.toDateString();
}
function sameUTCDate(d0, d1) {
return d0.toISOString().substr(0, 10) == d1.toISOString().substr(0, 10);
}
let d0 = new Date()
let d1 = new Date();
d1.setHours(d1.getHours() + 10);
console.log(
'd0 local: ' + d0.toString() +
'\nd1 local: ' + d1.toString() +
'\nSame local date? ' + sameLocalDate(d0, d1) +
'\nd0 UTC: ' + d0.toISOString() +
'\nd1 UTC: ' + d1.toISOString() +
'\nSame UTC date? ' + sameUTCDate(d0, d1)
);