我一直在尝试执行此代码。我是一个初学者,我用简单的例子练习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>
除了Date解析字符串可能出现的错误之外,还有:
alert
{
("The difference is" +diff.value()+ "days");
}
alert是一个方法,所以在名称和参数列表之间不应该有一个块,diff的值是一个没有value方法的数字,试试:
alert("The difference is" + diff + "days");
您可能已经被告知,如果需要,在计算表达式时将原语强制转换为对象,因此您可以这样做:
var a = 4;
alert( a.valueOf() ); // 4
为了显示a的值,alert将调用toString,这实际上与调用valueOf并将其转换为字符串相同:
alert( a.toString() ); // 4
试试这个:
<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>