如何计算两个文本输入之间的日期差异?

时间:2014-05-19 08:47:34

标签: javascript html

我有简单的表格,包括登记和结帐日期。我需要根据用户输入和显示来计算日期差异。 我的代码如下所示。

<tr>
<td class="searchFormSpace">Check in</td>
<td width="10px"></td>
<td><input name="checkinText" type="text" class="date" id="fromDatePicker" type="text" value="Select date" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Select date';}"></td>

<td width="20px"></td>
<td class="searchFormSpace">Check out</td>
<td width="10px"></td>
<td><input name="checkoutText" type="text" class="date" id="toDatePicker" type="text" value="Select date" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Select date';} " onchange=""></td>

<td width="20px"></td>
<td>Nights</td>
<td width="10px"></td>
<td><input style="width: 30px" type="text" name="noOfNightsText" id="noOfNightsText" ></td>

怎么做?

这就是我的尝试:

function dateDiff() {
try {
    var d2=document.getElementById("toDatePicker").value;
    var d1=document.getElementById("fromDatePicker").value;


    alert(d2);


    var t2 = d2.value.getTime();
    var t1 = d1.value.getTime();

    alert(parseInt((t2-t1)/(24*3600*1000)));
}
catch(ex) {
    alert(ex);
}

}

但它没有用。

2 个答案:

答案 0 :(得分:1)

假设您有两个Date对象(JavaScript对象),您只需减去它们即可获得毫秒级的差异。

您需要检查正在使用的日期选择器的输出与JavaScript Date Class Constructor之间的格式兼容性。

请参阅以下代码:

var date1 = new Date(document.getElementById("fromDatePicker").value);
var date2 = new Date(document.getElementById("toDatePicker").value);

var difference = date2 - date1;

var days = difference/(24*3600*1000);

答案 1 :(得分:0)

我相信这里发生的问题是元素的value属性是字符串。您必须首先解析它们并将它们转换为Date对象:new Date(document.getElementById("toDatePicker").value);

function dateDiff() {
    var d2=document.getElementById("toDatePicker").value;
    var d1=document.getElementById("fromDatePicker").value;

    var t2 = new Date(d2);
    var t1 = new Date(d1);

    alert((t2-t1) / (24*3600*1000));
    // You should get the number of days in between in here.

}