2013-02-18 5 views
1

폼에 대한 유효성 검사를 만들려고했습니다. 나는 공휴일뿐 아니라 날짜 선택 도구에서 주말을 사용하지 못하게하는 방법에 대해 살펴 보았습니다.Datetimepicker 폼 유효성 검사

$(document).ready(function(){ 
    $('.timepicker').datetimepicker({ beforeShowDay: $.datepicker.noWeekends }); 

    var natDays = [ 
    [2, 26, 'ph'], [2, 6, 'ph'], [2, 17, 'ph'] 
    ]; 

    function noWeekendsOrHolidays(date) { 
     var noWeekend = $.datepicker.noWeekends(date); 
     if (noWeekend[0]) { 
      return nationalDays(date); 
     } else { 
      return noWeekend; 
     } 
    } 

    function nationalDays(date) { 
     for (i = 0; i < natDays.length; i++) { 
      if (date.getMonth() == natDays[i][0] - 1 
      && date.getDate() == natDays[i][1]) { 
       return [false, natDays[i][2] + '_day']; 
      } 
     } 
     return [true, '']; 
    } 


}); 

내가 이걸 발견 : 나는

내가 일종의 JS에서의 새로운 오전이 코드를 작동하게 할 수있는 방법을 찾을 수 없습니다로 내 머리를 꺼내려고 생각 Trentrichardson http://trentrichardson.com/examples/timepicker/에서이 JQuery와 스크립트를 사용하고 있습니다 어제 코드가 정답인데 (Can the jQuery UI Datepicker be made to disable Saturdays and Sundays (and holidays)?), 제대로 작동하지 않습니다. 공휴일은 표시되지 않지만 주말은 비활성화되었습니다 (작동 중).

아이디어가 있으십니까? 날짜를 배치 해 장소에 대비 변경하는 것이 주어진 훨씬 더 어려울 수있는 (공휴일 점검

if (date.getDay() % 6) { 
    // date is not a weekend 
} else { 
    // date is a weekend 
} 

: 날짜가 토요일이나 일요일은 별도의 기능을 필요가 없습니다 여부를 확인

+0

왜이 태그가 PHP입니까? –

답변

0

)도 쉽게 할 수 있습니다. 세트 형식으로 날짜 목록을 생성 (ISO8601 편리), 당신은 단지 현재 날짜에 대해 테스트 할 수 있습니다, 물론

// You may have a function like this already 
// d is a javascript Date object 
function dateToISO(d) { 
    function z(n){return (n<10? '0':'')+n} 
    return d.getFullYear() + '-' + 
     z(d.getMonth() + 1) + '-' + 
     z(d.getDate()); 
} 

// s is a date string in ISO8601 format 
function isPublicHoliday(s) { 
    var holidays = '2012-12-25 2012-12-26'; // list holidays 
    var m = holidays.match(s); 
    return !!(m && m.length); 
} 

isPublicHoliday(dateToISO(date)); // true for 2012-12-25 

는 다르게 위를 구현하기를 원할 것입니다하지만 당신의 요점을 제공합니다 그것. 아마도 날짜 선택기는 날짜 객체 또는 테스트 할 수있는 형식화 된 문자열을 반환합니다. 문자열에 대한 테스트는 매우 빠르며 배열 및 함수에 많은 번거 로움을 덜어줍니다. 날짜는 사람이 읽을 수 있기 때문에 유지 관리가 매우 쉽습니다.