moment.js的每周调度程序
Weekly scheduler with moment.js
我正在尝试用javascript构建一个每周调度程序,允许函数仅在特定的时间范围和一周中的几天范围内运行。
将有两个完整的输入日期。"发件人"answers"收件人"。我需要检查"现在"是否在两个日期时间和星期几的范围内。
我已经查看了moment.js和这两个插件的文档:
https://github.com/gf3/moment-range
https://github.com/icambron/twix.js
我在这些框架中没有找到任何明确的解决方案,但我很惊讶,由于这些框架看起来如此完整,它似乎并不存在。也许我错过了什么?
moment.js是我每周日程安排的合适工具吗?
来源https://github.com/gf3/moment-range文档。
找出你的时刻是否在日期范围内:
var start = new Date(2012, 4, 1);
var end = new Date(2012, 4, 23);
var when = moment("2012-05-10", "YYYY-MM-DD");
var range = moment().range(start, end);
when.within(range); // true
更新:
这将检查一周中的哪一天是否在范围内。
function checkDay(range, when) {
var isWithin = false;
range.by('days', function(moment){
if(when.within(range) && moment.day() === when.day) isWithin = true;
});
return isWithin;
}
console.log( checkDay(range, when) );
再次更新:
根据你的反馈,我认为这应该奏效:
var startDate = new Date(2012, 4, 1);
var endDate = new Date(2012, 4, 23);
var dateRange = moment().range(startDate, endDate);
var days = [1,2,3,4,5]; // mon-fri
var startTime = moment('09:00 +0000', 'HH:mm Z'); // 9:00 am UTC
var endTime = moment('17:00 +0000', 'HH:mm Z'); // 5:00 pm UTC
var timeRange = moment().range(startTime, endTime);
function isWithin(dateRange, timeRange, days, when) {
return (when.within(dateRange) && !!~days.indexOf(when.day()) && moment(when.format('HH:mm Z'), 'HH:mm Z').within(timeRange));
}
var when = moment('2012-05-22 12:32 +0000', 'YYYY-MM-DD HH:mm Z');
console.log(isWithin(dateRange, timeRange, days, when));
我相信这能帮你清理一下,但我认为这会让你朝着正确的方向前进。
相关文章:
- 在dhtmlx调度程序中多次触发OnEventSave
- React/flux - 子组件用户事件 - 是否应通过调度程序路由所有内容
- dhtmlx多个调度器不工作错误”;调度程序未定义”;
- DHTMLX调度程序筛选
- DHTMLX 移动调度程序事件详细信息视图高度问题
- fuelUx 调度程序在选择每周重复周期时会丢失一天的信息
- 调度程序未在开玩笑单元测试中注册回调
- 如何将复杂对象绑定到剑道调度程序中的字段
- 将请求调度程序与 Jquery/AJAX 一起使用
- 寻找AngularJS日历调度程序
- 剑道调度程序不显示数据
- JavaScript 任务调度程序(批处理处理)
- 剑道 UI 调度程序 - JSON 数据未显示
- 重新加载剑道 UI 调度程序
- RxJS测试可观察序列,无需传递调度程序
- 在剑道调度程序中获取所选事件的 html 元素
- 带有 JSON 数据的 JavaScript Kendo 调度程序仅移动事件一次
- 有没有像tungle.me这样的日历调度程序的javascript/jquery实现
- 在Flux体系结构中,全局调度程序是否有害
- moment.js的每周调度程序