Проверка узла RRule, если день правила сегодня
Я использую библиотеку 'rrule.js' в узле для анализа моего RRule. Я хотел бы знать, совпадает ли текущий день с днем правления. Это работает в большинстве случаев, но не во всех. Я также использую момент.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;
}
Любая идея, что лучший способ сделать это.
Благодарю.
1 ответ
Это сработало для меня. Попробуйте установить время todayutc
вернуться к началу дня, используя момент startOf
метод:
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;
}