2011-05-09 1 views
1

나는 30 일을 더할 수 있도록 datepicker에서 문자열을 가져 와서 날짜 객체로 변환하는 함수를 가지고 있습니다. 그것에. 거기에서 (mm/dd/yy) 형식으로 30 일이 추가 된 문자열로 새 날짜를 반환하려고합니다.날짜를 30 일 추가 (mm/dd/yyyy) 다음에 문자열 (mm/dd/yyyy)을 반환합니다.

첫 번째 경고가 올바르게 30 일 선택한 날짜에 추가 화재와 "05/03/2011"으로 selcted 날짜에 대해이 작업을 보여줍니다

목 2011년 6월 2일 0시 0 분 0 초 그리니치 표준시 + 0100 (GMT 일광 절약 시간)

번째 경고 표시

2011 년 5

01,

날짜를 올바르게 포맷하고 "05/03/2011"을 가져 와서 "06/02/2011"을 반환 할 수 없습니다. 나는 달 + 1을 할 수 있지만 약간의 도움으로 제발 내가 뭘 잘못하고 있는지 보여주십시오.

$('#sign_date').datepicker({ 
     onSelect: function(dateText, inst) { 

      var d = new Date(dateText); 
      d.setDate(d.getDate() + 30); 

      alert(d); 

      var date = d.getDate(); 
      var month = d.getMonth(); 
      var year = d.getFullYear(); 

      alert(month+'/'+date +'/'+year) 

     } 
    }); 

또한 나는 그들이 일과 월을 예 : 월 = 1, 1 = 1, 나는 그것이 월 = 01 1 = 01

감사 앞에 0이 들어

답변

3

싶습니다 :

// add leading zero if the length equals 1 
if (month < 10) month = "0" + month; 
if (day < 10) day = "0" + day; 

것은 당신의 달 이전을 1을 추가해야합니다 그래서 getMonth() 월의 0을 반환하기 때문에, 너무,이 코드를 사용하고,에 :

var month = d.getMonth() + 1; 
+0

내가 30 일 추가 할 수 있습니다 변화 나에게 작동하지만 캔트 올바른 형식 – Jim

+0

@jim의 날짜를 반환하는 것, 미안 해요, 내가 마무리 된 내 당신이 문제의 첫 번째 부분이라고 생각했던 것을 제출하면서 대답 해주십시오. – Kelly

+0

대단히 감사합니다. – Jim

2

서프라이즈, 서프라이즈 ... getMonth() 방법은 범위 0..11 월을 반환합니다. 켈리에서

0

대답

그냥이

if(month<9) month = "0"+(month+1); 
if(date<10) day = "0"+date; 
+0

현재 코드를 사용하면 원래'month' == 9 일 경우 '010'이 끝납니다. – Kelly

+0

네 말이 맞아. 1 월 12 일에서 1 월 12 일까지, 0-11 월이 아닌 월이 필요하므로 (월 <9)이어야합니다. –

관련 문제