2014-01-12 1 views
0

버튼을 클릭 할 때 날짜를 조정하는 JavaScript 함수가 있습니다. getDate() 함수를 사용하고 텍스트 상자의 현재 날짜 값에서 7 일을 뺍니다. 내가보고있는 문제, 그리고 여러 가지 방법으로 해결하기 위해 노력했지만 아무 것도 작동하지 않는 것 같습니다. 버튼을 클릭하면 올바른 날짜가 표시됩니다. 다시 클릭하면 7 일 후에 완전히 이동합니다. 다른 날짜 - 예를 들어, 텍스트 상자의 날짜가 2010 년 5 월 5 일인 경우 2014 년 29 월 12 일로 이동하는 버튼을 클릭하고 다시 클릭하면 2015 년 28 월 28 일 - 22/12이 아닙니다./2014JavaScript getDate()가 더하기 및 빼기에 올바르게 날짜를 조정하지 않습니다.

var fromDateIn = new Date(formatDate(document.getElementById('<%= txtFromDate.ClientID%>').value)); 
     var newdate = new Date(fromDateIn); 
     newdate.setDate(newdate.getDate() - 7); 
     var nd = new Date(newdate); 

     document.getElementById('<%= txtFromDate.ClientID%>').value = formatDate(nd); 

    function formatDate(inputDate) { 

     var d = new Date(inputDate || Date.now()), 
    month = '' + (d.getMonth() + 1), 
    day = '' + d.getDate(), 
    year = d.getFullYear(); 

     if (month.length < 2) month = '0' + month; 
     if (day.length < 2) day = '0' + day; 

     return [day, month, year].join('/'); 

    } 

누군가가 내가 지속적으로 텍스트 상자에 현재 날짜 값 무엇이든지로부터 7 일 빼줄 수있는 방법을 나에게 지적시겠습니까 : 여기

내 자바 스크립트 코드?

감사

+0

예에서 입력 문자열에있는 달의 전날입니다. 날짜 생성자는 해당 월이 하루 전일 것으로 예상합니다. 어쩌면 그것이 문제의 일부 일 수 있습니다. – Alex

답변

0

문제는 형식의 날짜를 사용하는 새 fromDateIn

부하에 대한 값을 초기화 구성하고, 계산을 수행 할 newdate 변수를 사용에 기능 changeDate()를 호출하는 것입니다 귀하의 버튼을 클릭하십시오.

var fromDateIn = new Date(formatDate(document.getElementById('<%=txtFromDate.ClientID%>').value)); 
var newdate = new Date(fromDateIn); 

function changeDate() 
{ 
    newdate.setDate(newdate.getDate() - 7); 
    document.getElementById('<%= txtFromDate.ClientID%>').value = formatDate(newdate); 
} 

function formatDate(inputDate) 
{   
    var d = new Date(inputDate || Date.now()), 
    month = '' + (d.getMonth() + 1), 
    day = '' + d.getDate(), 
    year = d.getFullYear(); 

    if (month.length < 2) month = '0' + month; 
    if (day.length < 2) day = '0' + day;   
    return [day, month, year].join('/');   
} 
+0

안녕하세요. 답장을 보내 드려 죄송합니다. 자바 스크립트에서 fromDateIn 값을 설정하는 부분을 조언 해 주실 수 있습니까? Init 함수를 만들면 날짜 값은 아직 존재하지 않고 값을 변경하기 위해 액세스 할 수 없게됩니까? – Andy5

+0

scriptblock을 페이지의 끝에 놓거나'window.onload' (또는 jQuery를 사용한다면'$ (document) .ready()'를 사용하십시오) – Stephen

관련 문제