在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开始的。
答案 0 :(得分:2)
您可以使用valueAsDate属性简化:
$('#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;
答案 1 :(得分:1)
如上所述,月份是从0开始的,因此您必须修正月份值,并且可以提前设置第一天,并对new Date()
电话进行一些微妙的更改。
以下是一个例子:
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;
答案 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;
});