简单的日期差异代码

时间:2014-03-26 02:57:55

标签: javascript html datetime

我一直在尝试执行此代码。我是初学者,正在练习使用简单示例的HTML / Javascript。有人能告诉我这段代码有什么问题吗?

<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>

2 个答案:

答案 0 :(得分:1)

除了Date解析字符串的可能错误之外,您还有:

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

alert 是一种方法,因此名称和参数列表之间不应该有一个块, diff 的值是一个没有的数字有一个方法,请尝试:

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

您可能已经被告知,如果需要,在评估表达式时,基元会被强制转换为对象,因此您可以这样做:

var a = 4;
alert( a.valueOf() );  // 4

为了显示 a 的值, alert 将调用 toString ,这与调用 valueOf 并将其转换为字符串:

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

答案 1 :(得分: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>