0

我设计了一个表单,其中包含 3 个字段 From_date To_date No_of days 我想计算 from_date 和 to_date 之间的差异,差异值将以 nu_of 天显示。尝试了这段代码:

<script>
function difference()
{
var d1=document.getElementById("P1_FROM_DATE");
var d2=document.getElementById("P1_TO_DATE");
var d3=document.getElementB`yId("P1_NO_DAYS");
if(d2.value < d1.value)
{
alert("todate should not be less than from date");
d2.focus();
return false;
}
else
{
d3.value=(d2.value - d1.value)+1;
return true;
}
}
</script>

当此代码执行且条件满足时,no_of_days 显示 NaN。所以有什么解决办法请告诉我。

问候 Sabyasachi

4

2 回答 2

0

您正在尝试对只知道文本的字段使用基于日期的方法。您需要使用 Date 类从文本转换这些值,并使用这些方法来执行您的日期算术。

祝你好运!

于 2012-05-02T11:31:40.513 回答
0

一个通用公式。日期[x] 格式必须是 ISO(例如 'yyyy/mm/dd')。

var diffDays = 
     Math.floor( (new Date([date1]) - new Date[date2]) / (1000*60*60*24) );

顺便说一句,我想document.getElementById("P1_FROM_DATE")是一个输入字段。在这种情况下使用document.getElementById("P1_FROM_DATE").value以避免失望。

于 2012-05-02T11:32:40.923 回答