Datetime 节点RRule检查规则日是否为今天

Datetime 节点RRule检查规则日是否为今天,datetime,icalendar,momentjs,rrule,Datetime,Icalendar,Momentjs,Rrule,我正在节点中使用“rrule.js”库解析我的rrule。我想知道今天是否与规则日相同。它适用于大多数情况,但并非所有情况。我还使用moment.js进行比较。问题出现在“rule.after()”中。它应该包括当天,但不包括 function checkIfToday(rruleStr){ var RRule = require('rrule').RRule; var moment = require('moment'); var rule = RRule.fromString(rruleS

我正在节点中使用“rrule.js”库解析我的rrule。我想知道今天是否与规则日相同。它适用于大多数情况,但并非所有情况。我还使用moment.js进行比较。问题出现在“rule.after()”中。它应该包括当天,但不包括

function checkIfToday(rruleStr){
var RRule = require('rrule').RRule;
var moment = require('moment');

var rule = RRule.fromString(rruleStr);

// Convert all dates into UTC before comparison
var todayutc          = moment().utc(); // today in UTC
var nextOccurrence    = rule.after(todayutc,inc=true); // next rule date including today
var nextOccurutc      = moment(nextOccurrence).utc(); // convert today into utc
var match             = moment(nextOccurutc).isSame(todayutc, 'day'); // check if 'DAY' is same

return match;
}
你知道怎么做最好吗


谢谢。

这对我很有效。尝试使用moment的
startOf
方法将
todayutc
的时间设置回一天的开始:

function checkIfToday(rruleStr){
  var RRule = require('rrule').RRule;
  var moment = require('moment');

  var rule = RRule.fromString(rruleStr);

  // Convert all dates into UTC before comparison
  var todayutc          = moment().utc().startOf('day'); // today in UTC
  var nextOccurrence    = rule.after(todayutc, true); // next rule date including today
  var nextOccurutc      = moment(nextOccurrence).utc(); // convert today into utc
  var match             = moment(nextOccurutc).isSame(todayutc, 'day'); // check if 'DAY' is same

  return match;
}

你能想个办法吗?