2012-10-30 2 views
9

에는 한 달 또는 일년 내내있는 모든 방법이 있습니까? 나는 datepicker에서 특정 일을 사용하지 못하도록하기 위해이를 찾고 있는데, 요일을 선택하지 않는 백 오피스 페이지가 있습니다.Date 객체로 한 달의 모든 요일을 찾으십니까?

그래서 한 달 동안 모든 요일을 표시하고 매일 아래에 '활성화 또는 비활성화'버튼을 추가해야합니다. 요즘 Date 개체를 사용하여 요일을 찾는 방법이 있습니까? 예를 들어,이 링크를 발견 : Displaying all the days of a month하지만 난 정말 이해가 안돼, 플러스 자바, 자바 스크립트에서 솔루션을 찾으려고 노력하고 있습니다.

이 날짜 선택기에서 날짜를 사용하지 않으려면 당신의 도움이

+0

"요즘 찾은"또는 "요즘의 요즘"은 실제로 무엇을 의미합니까? 목표는 분명하지 않습니다 – charlietfl

답변

37

한 달의 모든 요일 목록을 얻으려면 한 달의 첫 번째 날에 Date으로 시작하고 그 달이 변경 될 때까지 그 날을 늘리십시오.

/** 
* @param {int} The month number, 0 based 
* @param {int} The year, not zero based, required to account for leap years 
* @return {Date[]} List with date objects for each day of the month 
*/ 
function getDaysInMonth(month, year) { 
    var date = new Date(year, month, 1); 
    var days = []; 
    while (date.getMonth() === month) { 
     days.push(new Date(date)); 
     date.setDate(date.getDate() + 1); 
    } 
    return days; 
} 

http://jsfiddle.net/kKj8h/1/

+0

Juan에게 많은 고마워, 내가 정확히 필요한거야! 고마워요 – Paul

+0

코드에 약간의 수정 date.setDate (date.getDate() + 1); date.push 배열 호출 전에 가야합니다 – Timothy

+0

@Timothy 이것이 작동하지 않는 테스트 케이스는 무엇입니까? –

0

주셔서 감사합니다, 당신은 대답은 여기에 설명 사용할 수 있습니다
https://stackoverflow.com/a/12061715/48082

가 (백 오피스 응용 프로그램에서와 같이) 여러 날짜를 선택하려면 표준 해제 날짜 날짜 선택기가 당신과 함께 작동합니다, 그래서 당신이 직접 질문을 답변 해 드리겠습니다 경우 설명에서
http://multidatespickr.sourceforge.net/

+0

답장을 보내 주셔서 감사합니다 Cheeso – Paul

4

잘 모르겠어요 :이 플러그인을 사용할 수 있습니다.

당신이 수행하여 한 달 동안 일의 배열을 비교적 쉽게 구성 할 수 있습니다

: 당신이 그것으로 원하는대로 당신은 꽤 많이 할 수있는 일의 배열을 사용

var numOfDays = new Date(2012, 10, 0).getDate(); //use 0 here and the actual month 
var days = new Array(); 

//This will construct an array with all the elements represent the day of the week 
//(i.e. Oct 30th would be days[30-1] or days[29]) and the value would be the actual 
//day of the week (i.e. Tuesday which is representing by the number 2) 
for(var i=0;i<=numOfDays;i++) 
{ 
    days[i] = new Date(2012,9,i+1).getDay(); //use month-1 here    
} 
//This will give you a number from 0 - 6 which represents (Sunday - Saturday) 
alert(days[29]); 

을하고의 일을 알고있다 주.

+0

답장을 보내 주신 Jeremy에게 감사드립니다! – Paul

1

여기에 그 달의 마지막 날을 결정하기 위해 매달 통해 실행되는 loopp입니다. Javascript Date 객체는 0부터 시작하는 달을 인덱싱하며 0을 설정하면 이전 달의 마지막 날로 되돌아갑니다.

Date (2012,0,0) 2012 알아낼 31,2011

및 모든 중요한 십이 돌아갑니다 12월 (31), 리턴 2월

Date(2012, 12, 0)에 대한 윤년 마지막 날 결정하기위한 편리한

2 월입니다 Date (2012,3,0) 올해의 윤년 이후로 2 월 29 일을 반환합니다.

var mos=['jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec'] 

for (i = 0; i < 12; i++) { 
    var lastDate = new Date(2012, i+1, 0); 
    $('body').append('Last day of ' + mos[i] + ' is ' + lastDate.getDate()+'<br>') 
} 

DEMO : http://jsfiddle.net/5k8sn/1/

+0

답변 해 주셔서 감사합니다 charlietfl! – Paul

1

jQuery datepicker를 사용하여 요청한 기능을 구현했습니다.

두 가지 기능

다음
$("#datepicker").datepicker({ 

    // only enable date if dateEnabled returns [true] 
    beforeShowDay: dateEnabled, 

    // once a date has been selected call dateSelected 
    onSelect: dateSelected 
}); 

첫째, 배열로

// format yyyy-mm-dd 
var disabledDates = [ 
    "2012-10-01", 
    "2012-10-02", 
    "2012-10-30", 
    "2012-09-12" 
]; 

둘째를 비활성화 백 오피스에서 선택한 모든 날짜를 추가 지정하는 날짜 선택기는 요구의 정의입니다 함수

function dateEnabled(d) { 

    // if date found in array disable date 
    if(disabledDates.indexOf(getDate(d)) > -1) { 

     return [false]; 

    } else { 

     return [true] ; 

    } 
} 

날짜를 비교하기 위해 날짜를 문자열로 변환 배열

function getDate(d) { 
    var day, 
     month, 
     year; 

    day = d.getDate(); 
    month = d.getMonth() + 1; // add 1 as getMonth returns 0 - 11 
    year = d.getFullYear(); 

    if(month < 10) month = "0" + month; 
    if(day < 10) day = "0" + day; 
    return year + "-" + month + "-" + day; 
} 

의 날짜 프로세스를 선택되면 그 다음은

function dateSelected(d) { 
    // do stuff with string representation of date           
} 

http://jsfiddle.net/KYzaR/7/

은 그냥이 사항 Array.indexOf는 ECMA에 최근에 추가 언급 할 가치가있을 것이라고 생각 바이올린을하다 -262 표준이므로 IE7 및 IE8의 경우에는 지원되지 않습니다. 다음 MDN 페이지는 이러한 브라우저에 대해 Array.indexOf를 구현하는 코드를 제공합니다. https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf

+0

브루노에게 고마워,이게 내가 찾고 있던거야! – Paul

+0

@Juan Mendes 내가 무슨 뜻인지 이해하지 못한다. indexOf를 사용하지 않으면 어떻게해야 하는가? – Paul

+0

@Juan Mendes 괜찮습니다. 감사합니다. – Paul

관련 문제