【问题标题】:Random date calculation bootstrap datapicker, on adding days to specific date随机日期计算引导日期选择器,将天数添加到特定日期
【发布时间】:2014-12-09 04:29:30
【问题描述】:

我花了一整天的时间来解决这个问题,并尝试了无数种方法来解决这个问题。好的,所以我试图通过添加 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 计算的,以及我传递了什么错误的参数?任何帮助将不胜感激。 提前致谢。

【问题讨论】:

    标签: javascript datepicker bootstrap-datepicker


    【解决方案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);
    });
    

    【讨论】:

      【解决方案2】:

      http://api.jqueryui.com/datepicker/#method-setDate 暗示这应该可以工作:

      $('#datetimepicker2').datepicker('setDate', booking_from.getDate()).datepicker('setDate','+'+days);
      

      评论“不起作用”后: 嗯,是的..“+/-天”方法无论如何都是相对于今天的;-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 .. 使示例保持简单。如果需要,您可以切换到该格式进行计算,然后再返回到您喜欢的任何格式以提高人类或数据库的可读性。

      【讨论】:

      • 不工作。 :( Booking_from 日期仅进入 datetimepicker2
      【解决方案3】:

      你可以进行一些毫秒操作

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

      【讨论】:

        猜你喜欢
        • 2020-12-17
        • 2021-04-26
        • 1970-01-01
        • 1970-01-01
        • 2014-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多