2

ノードで '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;
}

これを行うための最良の方法は何ですか。

ありがとう。

4

1 に答える 1

0

これは私にとってはうまくいきました。瞬間の方法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;
}
于 2016-05-24T17:31:36.120 に答える