如何使用 jquery datepicker 为日期添加一天

问题描述 投票:0回答:5

我的网站上有 2 个文本框,用于使用 jquery 日期选择器获取取件日期和送达日期。

我无法将送货日期值设置为比所选取件日期提前一天。

这是我所拥有的:

$('.pickupDate').change(function() {
    var date2 = $('.pickupDate').datepicker('getDate', '+1d'); 
    $('.dropoffDate').datepicker('setDate', date2);
});

以上将执行,但下车文本框中的值将与上车值匹配,而不是提前一天。例如:如果我选择 01-01-2010,上面的代码会在下拉框中返回 01-01-2010 而不是 02-01-2010。

有什么想法吗?

感谢您的帮助, 富

jquery jquery-ui datepicker
5个回答
86
投票

试试这个:

 $('.pickupDate').change(function() {
  var date2 = $('.pickupDate').datepicker('getDate', '+1d'); 
  date2.setDate(date2.getDate()+1); 
  $('.dropoffDate').datepicker('setDate', date2);
});

10
投票

这个答案确实帮助我入门(菜鸟)——但是当我将开始日期设置为 2014 年 12 月 31 日并将 +1 添加到默认结束日期时,我遇到了一些奇怪的行为。我得到的不是 01/01/2015 的结束日期,而是 02/01/2015 (!!!)。这个版本解析开始日期的组成部分以避免这些年末的奇怪情况。


 $( "#date_start" ).datepicker({

   minDate: 0,
   dateFormat: "mm/dd/yy",

   onSelect: function(selected) {
         $("#date_end").datepicker("option","minDate", selected); //  mindate on the End datepicker cannot be less than start date already selected.
         var date = $(this).datepicker('getDate');
         var tempStartDate = new Date(date);
         var default_end = new Date(tempStartDate.getFullYear(), tempStartDate.getMonth(), tempStartDate.getDate()+1); //this parses date to overcome new year date weirdness
         $('#date_end').datepicker('setDate', default_end); // Set as default                           
   }

 });

 $( "#date_end" ).datepicker({

   minDate: 0,
   dateFormat: "mm/dd/yy",

   onSelect: function(selected) {
     $("#date_start").datepicker("option","maxDate", selected); //  maxdate on the Start datepicker cannot be more than end date selected.

  }

});

6
投票

datepicker('setDate') 在 datepicket 中设置日期而不是在输入中。

您应该添加日期并在输入中设置它。

var date2 = $('.pickupDate').datepicker('getDate');
var nextDayDate = new Date();
nextDayDate.setDate(date2.getDate() + 1);
$('input').val(nextDayDate);

0
投票
var today = new Date();
date = today.getDate() >= 10 ? `${today.getDate()}` : `0${today.getDate()}`;
month = today.getMonth()+1 >= 10 ? `${today.getMonth()+1}` : `0${today.getMonth()+1}`;
year = `${today.getFullYear()}`;
$('#datepicker_input_id').attr('value', `${month}/${date}/${year}`);

0
投票

请在下面找到。该代码将 15 天添加到 datepicker 并以 dd-mm-yy 格式显示在名为 datepicker2 的文本框中。

$("#datepicker").datepicker({
            dateFormat: 'dd-mm-yy',
            inline: true,
            //altField: "#datepicker2",
            
            
            onSelect: function(dateText, inst) {
                
                var date = $(this).datepicker('getDate');
                var nextDayDate = new Date();
                nextDayDate.setDate(date.getDate() + 15);
                var copydate = $.datepicker.formatDate('dd-mm-yy', nextDayDate);
                $('#datepicker2').val(copydate);
                
            }

        });
© www.soinside.com 2019 - 2024. All rights reserved.