首页 > 解决方案 > 对未来日期做数学

问题描述

我试图弄清楚如何计算与当前日期相比的未来日期。例如:(将截止日期视为日期字段) - 如果截止日期(值形式)在未来但 <= 当前年份的 12/31,“今年” - 如果截止日期(值形式)在未来但> 当年 12/31,“未来”</p>

到目前为止,我无法在我的代码中解决这个问题。

我需要 var theFuture 的帮助并为“是未来但 <= 当年的 21/31 创建一个 var。

var theFuture = new Date("January 01 2020");
    //theFuture.setDate(today.getDate());


    //Compare the two numbers
    if (dateToCheck < rightNow || dateToCheck == rightNow) {
        theTiming = "Overdue";
        g_form.setValue('u_timing', theTiming);
    }
    else if (dateToCheck >= approaching) {
        theTiming = "Deadline Approaching";
        g_form.setValue('u_timing', theTiming);
    }
    else if (dateToCheck > theFuture){
        theTiming = "Future";
        g_form.setValue('u_timing, theTiming');
    }   
}

因此,结果应该是:当用户从 Deadline 中选择一个日期时,另一个名为 Timing 的字段将生成 Text。当前,我可以计算选择的日期是今天还是今天之前,时间会说“过期”。接下来,如果所选日期大于今天,但在 180 天内,Timing 将显示“Deadline Approaching”。但是,为了得到我上面提到的其余部分,我被卡住了。

标签: javascript

解决方案


我们使用 moment.js 来处理日期,它使事情变得更容易。

这将告诉您选择的日期是否是今天:

var iscurrentDate = moment().isSame(dateToCheck, "day");
if(iscurrentDate)
{
}

你也可以做类似的事情一年

var iscurrentDate = moment().isSame(dateToCheck, "year");
if(iscurrentDate)
{
}

有关时刻的更多信息:https ://momentjs.com/docs/


推荐阅读