如何计算Javascript中文本格式的两个日历日期之间的天数?

时间:2012-11-13 12:58:41

标签: javascript jquery jquery-ui date datepicker

我有一个表格,其中有两个带日期选择器的输入字段(在jquery ui的帮助下)。一个要求签入日期&另一个要求退房日期。我想计算这两个日期之间的天数。我是javascript的初学者。所以任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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;

就是这样!