在MomentJS中将两个日期与一个日期进行比较

时间:2020-07-08 14:21:02

标签: javascript date momentjs

早上好,我几次尝试在Google上执行此操作,检查了文档等内容,但到目前为止还没有运气。 基本上我想做的是:我有三个日期,一个代表今天的日期,两个代表某个电视节目播出的日期,如下面的代码所示:

    function handleAccordionExpanded(title: string, startTime: string, endTime: string) {
    const today = moment();

    let startTimeFormatted = moment(today.toISOString().slice(0,10) + ' ' + startTime).tz('America/Sao_Paulo');
    let endTimeFormatted = moment(today.toISOString().slice(0,10) + ' ' + endTime).tz('America/Sao_Paulo');

    if (startTimeFormatted.unix() >= today.unix() && endTimeFormatted.unix() <= today.unix()) {
        console.log(startTimeFormatted);
        return true;
    }

    return false;
}

startTime和endTime都不在我当前的时区中,因此我需要将其转换为-03:00

这段代码对于创建startTimeFormatted非常重要:

moment(today.toISOString().slice(0,10) + ' ' + startTime).tz('America/Sao_Paulo');

因为我需要知道当前的年,月和日才能创建今天的日期,所以startTime总是以hh:mm(09:15、12:15、15:55、22:15等)。

我实际上想做的是比较小时和分钟,而不是整个日期,但是也没有运气。

在尝试通过MomentJS运气之前,我尝试使用JS中的Date对象。

任何提示都会受到欢迎。

1 个答案:

答案 0 :(得分:0)

通过以下比较解决了该问题:

     if ( today.isBetween(startTimeFormatted, endTimeFormatted) ) {
        return true;
    }