2

我有一个表单,它有两个带有日期选择器的输入字段(在 jquery ui 的帮助下)。一个询问入住日期,另一个询问退房日期。我想计算这两个日期之间的天数.我是javascript的初学者。所以有人可以帮助我吗?

4

2 回答 2

0

使用 unix 时间戳。当您使用时间时,它是通用工具:

var a = new Date(2012,11,10);
var b = new Date(2012,11,12);
var dt = (b.getTime() - a.getTime())/(24*3600*1000) //2
于 2012-11-13T13:03:15.743 回答
0

您必须首先获取此类输入字段的值,例如:

var v1 = document.getElementById('input1Id').value;
var v2 = document.getElementById('input2Id').value;

那么你必须实例化两个新的 Javascript Date 对象:

var parts1 = v1.split('/'); 
var parts2 = v2.split('/');
// this will split your string into date parts, eg. 11/30/2012 would result as an array ['11','30','2012'];

var date1 = new Date(parts1[2],parts1[0],parts1[1]);
var date2 = new Date(parts2[2],parts2[0],parts2[1]);
// remember to check the index of array items considering your date format

最后,您只需从另一个日期中减去一个日期即可获得天数差异:

var difference = Math.Abs(date1 - date2);
difference = parseInt(difference / 86400000);
//86400000 are the milliseconds in one day. Parsing to int will round the day - eg.5,4 days results as 5 day

编辑:当然,您可以通过他的 id 属性引用您的 html 元素

<input type="text" id="myTextbox">

---

var txb = document.getElementById('myTextbox');
// do anything else to your txb here, if u like
txb.value = difference;

而已!

于 2012-11-13T13:12:02.453 回答