2014-03-26 2 views
0

이 코드를 실행하려고했습니다. 나는 초보자이고 간단한 예제로 HTML/Javascript를 연습하고 있습니다. 누군가이 코드의 잘못된 점을 말해 줄 수 있습니까?간단한 날짜 차이 코드

alert 
{ 
("The difference is" +diff.value()+ "days"); 
} 

은 경고는 방법, 그래서 이름과 매개 변수 목록 사이의 블록도 안하고 : 날짜 구문 분석 문자열로 아마 오류 이외에

<html> 
    <body> 
    <script language="javascript"> 
    function dateDiff() 
    { 
     var f1, f2, d1, d2, one_day, diff; 
     f1=document.getElementById("f1"); 
     f2=document.getElementById("f2"); 
     d1=new Date(f1); 
     d2=new Date(f2); 
     one_day=1000*60*60*24; 
     diff=Math.ceil((d1.value()-d2.value())/(one_day)); 
     alert 
     { 
     ("The difference is" +diff.value()+ "days"); 
     } 
    } 
    </script> 
    <form> 
    <input type=date name=f1 id=f1> 
    <input type=date name=f2 id=f2> 
    <input type=button name=f3 value="Get Difference" onclick="dateDiff"> 
    </form> 
    </body> 
</html> 
+0

어떤 오류가 발생합니까? 어떤 가치가'new Date()'에 전달됩니까? Date 생성자에 날짜 문자열의 구문 분석을 맡기는 것은 오류가 발생하기 쉽습니다. – RobG

+0

글쎄 @RobG, 양식에서 입력 받아 새로운 Date() 전달하려고합니다. 그리고 전혀 오류가 발생하지 않습니다. 메모장과 크롬을 사용하고 있습니다. – user3462370

+0

나는 그것이 범위 문제라고 생각한다. 엘리먼트에서'alert()'를 호출하고 있지만 윈도우의 범위에서 호출해야합니다. 참조 : http://javascript.info/tutorial/binding –

답변

1

, 당신은 DIFF의 값이 방법이없는 번호입니다, 시도 :

alert("The difference is" + diff + "days"); 

님의 프리미티브가 필요한 경우 식을 평가하는 객체에 강제 것을 말했다되었을 수 있습니다, 그래서 당신은 할 수 있습니다 :

의 값을 표시하기 위해
var a = 4; 
alert(a.valueOf()); // 4 

, 경고toString을 호출합니다 이는 valueOf를 호출하고 문자열로 coverting 효과적으로 같은 :

alert(a.toString()); // 4 
+0

나는 그것을 시도했다. 그러나 나는 아직도 아무것도 얻지 못하고있다. – user3462370

1

이 시도 :

<html> 
    <body> 
     <script language="Javascript" type="text/Javascript"> 
     function dateDiff() 
     { 
      var f1, f2, d1, d2, one_day, diff; 
      f1=document.getElementById("f1").value; // .value to get value of input text. 
      f2=document.getElementById("f2").value; // .value to get value of input text. 

      d1=new Date(f1); 
      d2=new Date(f2); 
      one_day=1000*60*60*24; 
      diff=Math.ceil((d1-d2)/(one_day)); // d1-d2 but not d1.value()-d2.value() 
      alert("The difference is" +diff+ "days"); // alert the difference of d1 and d2 by diff but not diff.value(). 
     } 
     </script> 
     <form> 
      <input type=date name=f1 id=f1> 
      <input type=date name=f2 id=f2> 
      <input type=button name=f3 value="Get Difference" onclick="dateDiff()"> 
     </form> 
    </body> 
</html>