moment.js日期/时间比较

时间:2017-03-13 17:19:29

标签: javascript momentjs

我有以下代码:

var timeCutoff = moment('05:00PM', 'h:mmA').format("MM/DD/YYYY hh:mmA")
var testTime = moment('11:00AM', 'h:mmA').format("MM/DD/YYYY hh:mmA");

if(testTime < timeCutoff){
    console.log(testTime + " before " + timeCutoff);
}
else{
    console.log(testTime + " after " + timeCutoff);
}

这里的想法是,现在的时间是之前下午5点,做点什么。如果时间是 5PM后,请执行其他操作。

以下是我遇到的问题:

testTime设置为('11:00AM','h:mmA')并记录意外的“after”条件。
testTime设置为('12:00PM','h:mmA')并记录意外的“after”条件。
testTime设置为('01:00PM','h:mmA')并记录预期的“之前”状态。
testTime设置为('09:00PM','h:mmA')并记录预期的“after”条件。

我目前正在使用moment.js 2.17.1

非常感谢任何建议。谢谢!

1 个答案:

答案 0 :(得分:2)

您应该使用isBefore()方法。

https://momentjs.com/docs/#/query/is-before/

var timeCutoff = moment('05:00PM', 'h:mmA');
var testTime = moment('11:00AM', 'h:mmA');

if(testTime.isBefore(timeCutoff)) {
  console.log(testTime.format("MM/DD/YYYY hh:mmA") + " before " + timeCutoff.format("MM/DD/YYYY hh:mmA"));
}
else
{
  console.log(testTime.format("MM/DD/YYYY hh:mmA") + " after " + timeCutoff.format("MM/DD/YYYY hh:mmA"));
}