2011-09-14 138 views
3

一旦用户从日期选择器中选择了日期,我想要添加41天。jQuery日期选择器,一旦选择日期就添加一定天数

<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"> 

回答

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

在操作中查看:http://jsfiddle.net/william/L9Szd/

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

看起来很奇怪,作为用户选择一个日期,然后框中说一个日期是41天后,而不是一个我采摘。为什么不用PHP来做这个额外的服务器端?

$date_string = date('Y-m-d', strtotime('+41 days', strtotime($_POST['date_input']))); 
+0

评论中的关键词是'User'。他们充满了奇怪的要求。它的计算,开始和结束日期总是41天。 – Codded

+0

@Matthew Brennand知道了 – dqhendricks

+0

谢谢你的回答,不胜感激。 – Codded

0

这是唯一的简单的方法我发现做到这一点:

设置日期至41日子里所选日期:

1.Fetch选定的日期从一个datepicker场

var newdate = new Date($("#datepicker_date_field_1").datepicker("getDate")); 

2.增加的时间得到了从上方

newdate.setDate(newdate.getDate() + 41); 

3.Assign新形成的日期另一个(或相同的)日期选择器字段

$("#datepicker_date_field_2").datepicker("setDate",newdate);  
相关问题