检查时间是否与 Moment.js 相同

dem*_*emo 3 javascript time momentjs

如何检查不同日期的 Moment 对象的时间是否相同?

例如我有像这样的对象

const endDate = moment().add(30, 'days').endOf('day');
Run Code Online (Sandbox Code Playgroud)

我想检查某个时刻对象是否是endOf一天。

private isEndOfDay(dateTime: string) {
    const m = moment().endOf('day');

    return m.isSame(dateTime, 'minute');
}

const receivedDateFormat: string = 'YYYY-MM-DD hh:mm:ss';

this.isEndOfDay(this.endDate.format(this.receivedDateFormat))
Run Code Online (Sandbox Code Playgroud)

但对于这种情况,当我传递“分钟”参数时,它将检查分钟、小时、日、月和年......这不是我想检查的。

chr*_*con 6

文档中解释该行为的部分是

当包含第二个参数时,它将匹配所有等于或更大的单位。传入月份将检查月份和年份。传入 day 将检查日、月和年。

因此,如果您只想比较分钟数,您需要执行类似的操作

endDate.minute() === startDate.minute()
Run Code Online (Sandbox Code Playgroud)

要仅比较时间,请使用 format() 日期

endDate.format('HH:mm:ss') === startDate.format('HH:mm:ss')
Run Code Online (Sandbox Code Playgroud)