我们如何检查同一天的2个时间戳?

时间:2019-07-12 08:28:23

标签: javascript angular date

我们如何检查同一天的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()比较日期。

3 个答案:

答案 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)
);

相关问题