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