2014-09-25 7 views
0

자바 스크립트로 주간 스케줄러를 만들려고합니다. 특정 시간 범위와 요일 범위에서만 기능을 실행할 수 있습니다.weekly scheduler with moment.js

두 개의 입력 날짜가 있습니다. "From"및 "To". 그리고 "지금"이 시간 및 요일 범위의 두 날짜에 속하는지 확인해야합니다.

둘 다 moment.js에 대한 문서 및이 두 플러그인을 통해 검토 한 결과 :

https://github.com/gf3/moment-range

https://github.com/icambron/twix.js

나는 이러한 프레임 워크에서 뚜렷한 해결책을 찾지 못했지만, 난 프레임 워크가 너무 완전 해 보이는 것처럼 보이지 않는 것처럼 보입니다. 아마도 나는 뭔가를 놓친거야?

moment.js가 주간 스케줄러에 적합한 도구입니까?

답변

0

https://github.com/gf3/moment-range docs. 당신의 순간 날짜 범위 내에있는 경우

알아 :

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)); 

을하지만 난 그것을 생각 당신을 올바른 방향으로 이끌어야합니다.

+0

DATE가 DATE 범위 내에 있는지 확인합니다. 나는 DAY OF WEEK가 "weekly range"내에 있는지 확인해야합니다. 즉, 날짜가 2012-1-15 10:00에서 2012-1-16 22:00 사이이고 날짜가 월요일과 화요일 인 경우 (즉) 말합니다. 해당 시간 범위 내에서 매주 월요일과 화요일에 true를 반환해야합니다. – Emin

+1

업데이트 된 답변이 도움이되는지 확인하십시오. –

+0

가까이 가보고 싶습니다. 그러나 이것은 시간이 범위 내에 있는지, 일주일 만에 있는지 검사하지 않습니다. 내가 원하는 것은 "영업 시간 계획"과 같아서 시간은 요일만큼 중요합니다. – Emin