jQuery 日期选择器,选择日期后添加一定的天数

发布于 2024-12-04 17:02:06 字数 713 浏览 0 评论 0原文

一旦用户从日期选择器中选择了日期,我想添加 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">

Once the user has selected the date from the datepicker, i want to add 41 days.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

凌乱心跳 2024-12-11 17:02:06

您可能只需要在同一个启动函数中组合选项:

$("#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/

You might just need to combine the options in the same initiating function:

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

See this in action: http://jsfiddle.net/william/L9Szd/.

番薯 2024-12-11 17:02:06

$('#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

$('#startdate').datepicker('getDate') will return a Date object

d = $('#startdate').datepicker('getDate');
d.setDate(d.getDate()+nights); // add int nights to int date
alert(d);

Adding d.getDate() and nights will jump time forward. So if 9/16/2011 + 41 days you'll get 10/25/2011

暖伴 2024-12-11 17:02:06

如果用户选择一个日期,然后该框显示的是 41 天后的日期,而不是我选择的日期,这似乎很奇怪。为什么不使用 PHP 在服务器端添加此内容呢?

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

would seem strange as a user to select a date, and then the box says a date that's 41 days later instead of the one I picked. why not do this addition server side with PHP?

$date_string = date('Y-m-d', strtotime('+41 days', strtotime($_POST['date_input'])));
无悔心 2024-12-11 17:02:06

这是我发现执行此操作的唯一简单方法:

将日期设置为所选日期之前 41 天:

1.从日期选择器字段中获取所选日期

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

2.增加从上面获得的日期

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

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

$("#datepicker_date_field_2").datepicker("setDate",newdate);    

This is the only simple way I found to do this:

To set date to 41 days ahead of the selected date:

1.Fetch selected date from a datepicker field

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

2.Increase the date got from above

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

3.Assign the newly formed date to another (or same) datepicker field

$("#datepicker_date_field_2").datepicker("setDate",newdate);    
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文