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

Javascript 如何计算两个文本输入之间的日期差?,javascript,html,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=

我有一个简单的表格,包括入住和退房日期。我需要根据用户输入和显示计算日期差。 我的代码如下所示

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


但是它不起作用。

假设您有两个日期对象(JavaScript对象),只需减去它们就可以得到毫秒的差值

您需要检查正在使用的日期选择器的输出和JavaScript日期类构造函数之间的格式兼容性

请参考以下代码:

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

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


日期的格式是什么?我们在这里帮助您解决遇到的问题。不要解决你的问题。先尝试一下,如果不奏效,告诉我们你尝试了什么。那我们就可以帮忙了!您可以创建传入输入值的javascript日期对象(
var date1=new Date(…);
),然后使用日期对象根据您的编辑进行计算,
var t2=new Date(d2);
创建新日期(假设d2是有效的日期字符串,然后
t2.getTime();
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);
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.

}