首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node RRule检查规则日是否为今天

node RRule检查规则日是否为今天
EN

Stack Overflow用户
提问于 2015-04-30 03:47:32
回答 1查看 1.2K关注 0票数 2

我在节点中使用'rrule.js‘库来解析我的RRule。我想知道今天和规则日是不是一样。它适用于大多数情况,但不是所有情况。我还使用moment.js进行比较。问题出在"rule.after()“中。它应该包括当天,但它没有。

代码语言:javascript
复制
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;
}

你知道最好的方法是什么吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-05-25 01:31:36

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

代码语言:javascript
复制
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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29953152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档