2011-08-02 3 views
0

저는 출퇴근 사이트에서 jQuery UI datepicker를 사용하여 출하 날짜를 설정하는 초보자입니다. 내가 같이 정의 된 첫 번째 유효 배송일과 날짜 입력 필드를 채우려 :jQuery UI datepicker를 유효한 날짜로 정의 된 첫 번째 날짜로 설정합니다.

  • 나중에 오늘보다 더; 및
  • 중 하나
  • 월요일 또는 화요일

(가 다른 조건이 있지만, 나는이 순간을 위해 그들을 무시하고 있습니다.)

내가 이것을 쓰고, 다음 몇 일 동안, 올바른으로

이 날짜의 가치는 2011 년 8 월 8 일입니다. 여기

http://www.lolacookies.com/gifts/

가 작동하지 않는 내 코드입니다 : 여기

는 페이지입니다. 주석 처리 된 부분은 작업을 수행하는 것으로되어 있습니다. 입력 값이 전혀 설정되지 않았습니다. 이전 시도에서는 날짜가 minDate 값으로 설정되었지만 다른 값에는 설정되지 않았습니다.

$(document).ready(function(){ 


$(".datepicker").datepicker({ 
    beforeShowDay: nonWorkingDates, 
    hideIfNoPrevNext: true, 
    numberOfMonths: 1, 
    minDate: "+1d", 
    maxDate: "+3M", 
    showAnim: "blind", 
    showOn: "both", 
    buttonImage: "/images/misc/calendar.png", 
    buttonImageOnly: true, 
    buttonText: "Select a date" 
}); 


//set firstShippingDate to value of minDate 
//we don't ship on same day, so minDate is today + 1d 
var firstShippingDate = $(".datepicker").datepicker("option", "minDate"); 

//we ship only on Monday and Tuesday, so test for that 
var dayOfWeek = firstShippingDate.getDay(); 

//if it's not Monday or Tuesday, advance firstShippingDate by one day and test again 
while (dayOfWeek == 0 || dayOfWeek == 3 || dayOfWeek == 4 || dayOfWeek == 5 || dayOfWeek == 6) 
    { 
    firstShippingDate.setTime(firstShippingDate.getTime() + 86400000); 
    dayOfWeek = firstShippingDate.getDay(); 
    }; 

//should exit loop with firstShippingDate set to first Monday or Tuesday that's not today 
//set datepicker to that firstShippingDate 
$(".datepicker").datepicker("setDate" , firstShippingDate); 


function nonWorkingDates(date){ 
    var day = date.getDay(), Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6; 
    var closedDates = [[06, 27, 2011], [06, 28, 2011], [06, 29, 2011], [07, 04, 2011]]; 
    var closedDays = [[Sunday], [Wednesday], [Thursday], [Friday], [Saturday]]; 
    for (var i = 0; i < closedDays.length; i++) { 
     if (day == closedDays[i][0]) { 
      return [false]; 
     } 

    } 

    for (i = 0; i < closedDates.length; i++) { 
     if (date.getMonth() == closedDates[i][0] - 1 && 
     date.getDate() == closedDates[i][1] && 
     date.getFullYear() == closedDates[i][2]) { 
      return [false]; 
     } 
    } 

    return [true]; 
} 


}); 

답변

0

DateJS 라이브러리를 체크 아웃해야 할 수 있습니다.

귀하의 경우 그래서
Date.today().next().monday(); 

, 당신은 다음주 월요일 또는를 얻기 위해 같은 것을 할 수 있습니다 화요일 : 그건 당신이 다음주 월요일 얻기 위해 같은 멋진 물건을 할 수 있도록

if (Date.today().is().monday()) { 
    firstShippingDate = Date.today().next().tuesday(); 
} else { 
    firstShippingDate = Date.today().next().monday(); 
} 
+0

맵시를 - I 엄청난 용도를 생각할 수 있습니다. 감사! – Laurence