2

日付ピッカーを使用した2つの入力フィールドを持つフォームがあります(jquery uiの助けを借りて).1つはチェックイン日を尋ね、もう1つはチェックアウト日を尋ねます.これら2つの日付間の日数を計算したい.私は JavaScript の初心者です。

4

2 に答える 2

0

そのような入力フィールドの値を最初に取得する必要があります。

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

次に、2 つの新しい 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 に答える
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 に答える