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));
을하지만 난 그것을 생각 당신을 올바른 방향으로 이끌어야합니다.
DATE가 DATE 범위 내에 있는지 확인합니다. 나는 DAY OF WEEK가 "weekly range"내에 있는지 확인해야합니다. 즉, 날짜가 2012-1-15 10:00에서 2012-1-16 22:00 사이이고 날짜가 월요일과 화요일 인 경우 (즉) 말합니다. 해당 시간 범위 내에서 매주 월요일과 화요일에 true를 반환해야합니다. – Emin
업데이트 된 답변이 도움이되는지 확인하십시오. –
가까이 가보고 싶습니다. 그러나 이것은 시간이 범위 내에 있는지, 일주일 만에 있는지 검사하지 않습니다. 내가 원하는 것은 "영업 시간 계획"과 같아서 시간은 요일만큼 중요합니다. – Emin