2012-10-30 2 views
1

그래서 잘못된 날짜를 반환 다른 텍스트 필드에 출력을 표시하십시오. 그러나 내가 얻은 결과는 항상 NaN-NaN-NaN이거나 서식을 제거하면 단순히 잘못된 날짜입니다. 그러나자바 스크립트하여 setDate()는이 코드를 가지고

:

$('#end_date').val($.datepicker.formatDate('yy-mm-dd', start_date)); 

작품 잘. 그래서 문제가 3 행에 있다고 생각하지 않습니다. 그리고 지금 나는 혼란스러워했다. 이 문제를 해결하기위한 포인터는 무엇입니까?

+4

글쎄, [문서 확인] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/)을 사용해 보겠습니다. 날짜/setDate) ... – Blazemonger

+0

코드를 수정하기 위해 링크 된 문서를 사용할 수 있다고 생각하지만 또 다른 함정을 조심하십시오 : [parseInt] (https://developer.mozilla.org/en)를 사용할 때 항상 정확한 기수 왜냐하면'parseInt ('09')'가 0이기 때문입니다. –

답변

1

setDate은 달의 요일을 설정하기 때문에 setFullYearsetMonth을 사용하거나이 작업을 수행 할 수 있습니다.

$('#end_date').click(function() 
{ 
    var start_date = new Date($('#start_date').val()); 
    var duration = parseInt($('#duration').val()); 

    var end_date = new Date(); 
    end_date.setDate(start_date.getMilliseconds() + duration.getMilliseconds()); 

    $('#end_date').val($.datepicker.formatDate('yy-mm-dd', end_date)); 
}); 

start_Date와 duration은 밀리 초를 반환합니다.

+0

ahh, setMonth, 대신에 이것을 사용해야합니다. 감사! – Furunomoe

+1

이것은 작동하지 않습니다. (i) duration은 숫자이고, 숫자는'.getMilliseconds'가 없습니다. (ii)'.getMilliseconds'는 유닉스 에포크에서 밀리 초가 아닌 지정된 날짜의 밀리 초 부분을 반환합니다. –

1

this question에 따르면, 대신 시도해야합니다 :

end_date.setDate(start_date.getDate() + duration); 
+0

예, 그냥 문서를 읽으십시오. 감사! – Furunomoe

0

당신은 .getDate()를 사용하여 현재 날짜를 얻을 수, 일의 수를 추가하고 .setDate()를 사용하여 다시 설정합니다. setDate() 기능이 자동으로 :) 여기 개월 및 년을 롤 예입니다 만 월에 날을 설정

var start_date = new Date("2011-01-01"); 
var duration = parseInt("180", 10); 
var end_date = new Date(); 
end_date.setTime(start_date.getTime());   // end date now has same date value as start_date 
               // remember: end_date = start_date will give you undesired results! 
end_date.setDate(end_date.getDate() + duration); // add duration days 
console.log(end_date.toDateString());   // Thu Jun 30 2011 
0

setDate, 당신이 할 수 있습니다 :이해야

var duration = parseInt($('#duration').val(), 10); // don't forget the radix! 
var end_date = new Date(); 
end_date.setTime(start_date.getTime()); // makes end_date a copy of start_date 
end_date.setDate(start_date.getDate() + duration); // changes the day of the month (and recomputes months and years) 
0
$('#end_date').click(function() 
{ 
    var start_date = new Date($('#start_date').val()); 
    var duration = parseInt($('#duration').val()); 

    var end_date = new Date(); 
    end_date.setTime(start_date.getTime() + (duration*24*60*60*1000));//convert duration to miliseconds 

    $('#end_date').val($.datepicker.formatDate('yy-mm-dd', end_date)); 
}); 

을 start_date 시간에 지속 시간을 추가하고 해당 시간을 end_date로 설정하십시오.

관련 문제