我花了一整天的时间来解决这个问题并尝试了无数的方法来解决这个问题。好吧所以我通过添加num来尝试获取新日期。添加num后指定日期的天数几天。
新日期=开始日期+ num。几天
$('.duration').change(function(){
var days = $(this).val();
var booking_from= $( "#datetimepicker1" ).datepicker( "getDate" );
var endDate = new Date();
endDate.setDate(booking_from.getDate()+days);
$('#datetimepicker2').datepicker('setDate', endDate);
});
但是在datetimepicker2中,任何随机日期都会到来。我没有得到这些日期是如何通过datepicker计算的,以及我传递的错误参数是什么?任何帮助将不胜感激。 提前谢谢。
答案 0 :(得分:1)
你需要调用来自jquery val()的值的parseInt,并以不同的方式初始化endDate:
$('.duration').change(function() {
var days = parseInt($(this).val());
var bookingFrom = $('#datetimepicker1').datepicker('getDate');
var endDate = new Date(bookingFrom);
endDate.setDate(bookingFrom.getDate() + days);
$('#datetimepicker2').datepicker('setDate', endDate);
});
答案 1 :(得分:0)
http://api.jqueryui.com/datepicker/#method-setDate意味着这应该有效:
$('#datetimepicker2').datepicker('setDate', booking_from.getDate()).datepicker('setDate','+'+days);
评论后#34;没有工作": 呃,是的.." +/-天"无论如何,这种方法与今日有关;-P 这对我有用:
$( "#datepicker" ).datepicker({dateFormat: "@"});
var day_2014dec01 = new Date(2014,11,1,12,34,56);
$('#datepicker').datepicker('setDate', ""+day_2014dec01.getTime() );
" dateFormat @"是unix时间 - 请参阅http://api.jqueryui.com/datepicker/#utility-formatDate ..让示例保持简单。您可以切换到计算结果,然后再根据需要再次返回您喜欢的人类或数据库可读性格式。
答案 2 :(得分:0)
你可以进行一些毫秒的操作
function getNewDate(start,num_of_days){
var newTime = num_of_days * 24 * 60 * 60 * 1000 + start.getTime();
undefined
var newDate = new Date(newTime);
return newDate;
}
endDate.setDate(getNewDate(booking_from,days));
或
$('.duration').change(function(){
var days = $(this).val();
var booking_from= $( "#datetimepicker1" ).datepicker( "getDate" );
var endDate = new Date(Date.now() + days * 24 * 60 * 60 * 1000);
$('#datetimepicker2').datepicker('setDate', endDate);
});