2016-08-08 90 views
0

我想在到達日期更大時使用JavaScript更新日期來更新日曆中的出發日期。這是我的代碼,但問題是,當我更改到達日期時,出發日期保持不變。如果到達日期更長,則更新出發日期

function addDate() { 
 
\t \t \t date = new Date(); 
 
\t \t \t var month = date.getMonth() + 1; 
 
\t \t \t var day = date.getDate(); 
 
\t \t \t var year = date.getFullYear(); 
 

 
\t \t \t if (document.getElementById('startDate').value == '') { 
 
\t \t \t \t document.getElementById('startDate').value = month + '/' + day + '/' + year; 
 
\t \t \t } 
 
\t \t \t if (document.getElementById('endDate').value == '') { 
 
\t \t \t \t document.getElementById('endDate').value = month + '/' + (day + 1) + '/' + year; 
 
\t \t \t } 
 
\t \t }
<input type="text" id="startDate" style="background-color:#5c677b;height:25px;" name="checkin" placeholder="checkin"> 
 

 
<input type="text" id="endDate" style="background-color:#5c677b;height:25px;" name="checkout" placeholder="checkout">

回答

0

如果我說對了,你想:

  • 默認設置當前日期作爲到達日期和次日 出發日期
  • 更新改變抵達日期時的出發日期只如果這是更大的

我的解決方案是這樣的。首先你必須抓住這個事件,把onchange="changedDate()"。然後檢查arrivalDate>departureDate以及何時獲得該日期,並最終更新下一個日期的出發日期。

addDate(); 
 
function addDate() { 
 
    date = new Date(); 
 
    var month = date.getMonth() + 1; 
 
    var day = date.getDate(); 
 
    var year = date.getFullYear(); 
 

 
    if (document.getElementById('startDate').value == '') { 
 
    document.getElementById('startDate').value = month + '/' + day + '/' + year; 
 
    } 
 
    if (document.getElementById('endDate').value == '') { 
 
    document.getElementById('endDate').value = month + '/' + (day + 1) + '/' + year; 
 
    } 
 
} 
 
function changedDate(){ 
 
    var arrivalDate = new Date(document.getElementById('startDate').value) ; 
 
    var departureDate = new Date(document.getElementById('endDate').value) ; 
 
    if(arrivalDate>departureDate){ 
 
    var arrDate = new Date(); 
 
    arrDate.setDate(arrivalDate.getDate()+1); 
 
    arrDate.setMonth(arrivalDate.getMonth()+1); 
 
    arrDate.setFullYear(arrivalDate.getFullYear()); 
 
    document.getElementById('endDate').value = arrDate.getMonth() + '/' + arrDate.getDate() + '/' + arrDate.getFullYear(); 
 
    } 
 
}
<input type="text" id="startDate" style="background-color:#5c677b;height:25px;" name="checkin" placeholder="checkin" onchange="changedDate()"> 
 
<input type="text" id="endDate" style="background-color:#5c677b;height:25px;" name="checkout" placeholder="checkout">

+0

這是很好的工作,非常感謝。 – magdy

+0

@不客氣。你也可以考慮加快我的回答,因爲它對你有用。 –

+0

我還想改變日期格式爲dd/mm/yyyy當我改變它它給了我另一個日期錯誤的日期? 。 – magdy

0

If(document.getElementById('endDate').value < document.getElementById('startDate').value){ (document.getElementById('endDate').value= If(document.getElementById('startDate').value.addDay(1) }

語法是不完全正確,但是這就是你想要的。

問題在於,當您選擇結束日期時,您沒有告訴它更新。如果選擇了結束日期,則開始日期會發生變化,您需要比較兩者,然後相應地進行調整。

+0

是的,我不告訴更新結束date.i不知道怎麼回事,我想更新結束日期時開始日期的變化,結束日期將擦碎於開始日期有一天。你有我的觀點? – magdy

+0

何時何地調用addDate函數? – Thecor

+0

是的,我在onload()函數上調用addDate()函數 – magdy