如果抵达日期更长,请更新出发日期

时间:2016-08-08 12:22:01

标签: javascript date calendar

我希望在到达日期更新时更新日历中的出发日期,使用JavaScript,添加一天。这是我的代码,但问题是当我更改到达日期时,出发日期保持不变。



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;
			}
		}

<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">
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

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

语法不是很正确,但这就是你想要的。

问题是,当您选择了结束日期时,您并没有告诉它更新。如果选择结束日期然后更改开始日期,则需要比较两者,然后相应地进行调整。

答案 1 :(得分:0)

如果我做对了,你想:

  • 默认设置当前日期为到达日期,第二天为 出发日期
  • 仅在更改
  • 时更改到达日期时更新出发日期

我的解决方案就是这样。首先,你必须通过onchange="changedDate()"来捕捉事件。然后检查是否为arrivalDate>departureDate,当为真时获取该日期,最后用下一个更新出发日期。

&#13;
&#13;
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();
  }
}
&#13;
<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">
&#13;
&#13;
&#13;