我有简单的表格,包括登记和结帐日期。我需要根据用户输入和显示来计算日期差异。 我的代码如下所示。
<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);
}
}
但它没有用。
答案 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.
}