将一天添加到输入类型日期值

时间:2015-02-13 19:03:51

标签: jquery

在HTML中我有一个日期输入:

<input type="date" id="checkInDate" value="<?php echo date('Y-m-d'); ?>" />

我使用jquery订阅了更改事件:

$('#checkInDate').on('change', function()
{
});

如何获取该输入日期的选定值,在该日期添加一个并将另一个输入(checkOutDate)设置为该值?以下是我目前的情况:

$('#checkInDate').on('change', function()
{
    var checkInDate = $(this).val();
    console.log(checkInDate); // result is yyyy-mm-dd, ex: 2015-02-20
    var split = checkInDate.split('-');
    var tomorrow = new Date(split[0], split[1], split[2], 0,0,0,0);
    console.log(tomorrow); // result is Wed Mar 18 2015 00:00:00 GMT-0600     (Mountain Daylight Time)
});

然而这是不正确的,因为月份02被视为第三个月,因为月份是从0开始的。

5 个答案:

答案 0 :(得分:2)

您可以使用valueAsDate属性简化:

&#13;
&#13;
$('#checkInDate')[0].valueAsDate = new Date();

$('#checkInDate').change(function() {
  var date= this.valueAsDate;
  date.setDate(date.getDate() + 1);
  $('#checkOutDate')[0].valueAsDate = date;
});

$('#checkInDate').change();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Check-in Date:  <input type="date" id="checkInDate" >  <br>
Check-out Date: <input type="date" id="checkOutDate" disabled>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

如上所述,月份是从0开始的,因此您必须修正月份值,并且可以提前设置第一天,并对new Date()电话进行一些微妙的更改。

以下是一个例子:

&#13;
&#13;
var checkInDate = "2015-02-13";
var split = checkInDate.split('-');
var tomorrow = new Date(parseInt(split[0]), parseInt(split[1] - 1), parseInt(split[2]) + 1, 0,0,0,0);
alert(tomorrow);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

Javascript Date对象有一个getDate()方法

var dateObj = new Date(split[0], split[1], split[2], 0,0,0,0);
var tomorrow = dateObj.getDate()+1; 
console.log(tomorrow); 

答案 3 :(得分:0)

您需要在1个月内从JS开始减去0

并使用getDate()setDate()函数

var tomorrow = new Date(split[0], split[1]-1, split[2], 0,0,0,0);
tomorrow.setDate(tomorrow.getDate()+1); 
console.log(tomorrow); 

答案 4 :(得分:0)

试试这个:

$('#checkInDate').on('change', function()
{
    var checkInDate = $(this).val();
    var split = checkInDate.split('-');
    var tomorrow = new Date(split[0], split[1]-1, parseInt(split[2])+1, 0,0,0,0);
    $('#checkOutDate')[0].valueAsDate = tomorrow;
});

见JS小提琴:http://jsfiddle.net/61bkhok3/1/