一旦用户从日期选择器中选择了日期,我想添加41天。
<script language="javascript">
$(document).ready(function() {
$("#startdate").datepicker({ dateFormat: 'd/m/y'});
$('#startdate').datepicker({
onSelect: function(dateStr) {
var nights = parseInt($('#numofdays').val());
var depart = $.datepicker.parseDate('d/m/y', dateStr);
depart.setDate(depart.getDate('d/m/y') + nights);
$('#calc').val(depart);
}
});
});
</script>
Start: <input type="text" id="startdate" class="datepicker"><br />
<input type="hidden" id="numofdays" value="41"><br />
Calc: <input type="text" id="calc">
答案 0 :(得分:1)
$('#startdate').datepicker('getDate')
将返回Date对象
d = $('#startdate').datepicker('getDate');
d.setDate(d.getDate()+nights); // add int nights to int date
alert(d);
添加d.getDate()
和nights
会缩短时间。因此,如果9/16/2011 + 41天,您将获得10/25/2011
答案 1 :(得分:1)
似乎很奇怪,然后该框表示41天后的日期而不是我选择的日期。为什么不用PHP添加服务器端呢?
$date_string = date('Y-m-d', strtotime('+41 days', strtotime($_POST['date_input'])));
答案 2 :(得分:1)
您可能只需要在同一启动函数中组合选项:
$("#startdate").datepicker({
dateFormat: 'd/m/y',
onSelect: function(dateStr, inst) {
var nights = parseInt($('#numofdays').val());
var depart = $.datepicker.parseDate('d/m/y', dateStr);
depart.setDate(depart.getDate('d/m/y') + nights);
$('#calc').val(depart.toLocaleDateString());
}
});
答案 3 :(得分:0)
这是我发现这样做的唯一简单方法:
将日期设置为所选日期之前的41天:
1.从datepicker字段中获取所选日期
var newdate = new Date($("#datepicker_date_field_1").datepicker("getDate"));
2.增加从上面获得的日期
newdate.setDate(newdate.getDate() + 41);
3.将新形成的日期分配给另一个(或相同的)datepicker字段
$("#datepicker_date_field_2").datepicker("setDate",newdate);