【问题标题】:datepicker days and date logic for jqueryjQuery 的 datepicker 日期和日期逻辑
【发布时间】:2020-05-22 10:56:57
【问题描述】:

在 from_date 的 on _change 事件中,我想获取输入 days 和 from_date 的值以添加 days 和 from_date 的值并将其设置为 to_date

例如 input_days=5 和 from_date=10/02/2020 它应该在 to_date 中添加并自动显示 15/02/2020....

这是添加 from_date 和 to_date 并显示 total_date 的代码,但是......我应该在这个逻辑中改变什么?

$("#fromdate,#todate").datepicker({
    minDate: 0,
    changeMonth: true,
    changeYear: true,
    firstDay: 1,
    dateFormat: 'yy/mm/dd',
});

$("#fromdate").datepicker({dateFormat: 'yy/mm/dd'});
$("#todate").datepicker({dateFormat: 'yy/mm/dd'});

$('#enddate').change(function () {
    var start = $('#fromdate').datepicker('getDate');
    var end = $('#todate').datepicker('getDate');

    if (start < end) {
        var days = (end - start) / 1000 / 60 / 60 / 24;
        $('#total_days').val(days);
    } else {

        alert("cannot select same or previous date!");
        $('#fromdate').val("");
        $('#total_days').val("");
    }
});

【问题讨论】:

    标签: javascript php jquery laravel datepicker


    【解决方案1】:

    请参考以下代码。也请在评论中找到小提琴链接。如果输入为空,我默认添加 5 天。

    <label class="required">Days</label> <input type="text" id="days"><br/><br/><br/>
    <label class="required">from</label>                                                                                                           
    <input type="text" id="fromDate" class="form-control date-picker from input-append minDate" placeholder="mm/yyyy"><br/><br/><br/>
    
    <label> To </label>                                             
    <input type="text" id="toDate" class="form-control date-picker to input-append maxDate" placeholder="mm/yyyy" >
    
    $(function() {
        $( ".from" ).datepicker({
          onSelect: function( selectedDate ) {
            $( ".to" ).datepicker( "option", "minDate", selectedDate );
            var toDate = $('.from').datepicker('getDate');
            var days = $("#days").val()  != "" ? parseInt($("#days").val()) : 5;
                    toDate.setDate(toDate.getDate() + days );
                    $('.to').datepicker('setDate', toDate);
          }
        });
        $( ".to" ).datepicker({
          onSelect: function( selectedDate ) {
            $( ".from" ).datepicker( "option", "maxDate", selectedDate );
          }
        });
      }); 
    

    【讨论】:

    • 上述答案的小提琴链接jsfiddle.net/shivpatne/7g8paL6j
    • 我有另一个 我正在传递 $("#days").val() 而不是 + 5 但这没有给出正确的输出
    • .val() 给你字符串。您需要将其解析为整数。
    • 我也更新了小提琴和我的代码。您可以在哪里使用输入框提供天数
    【解决方案2】:
    var val = $("#fromdate").val(); // your input date ID, like we have input: 5
    var myDate = new Date($.datepicker.formatDate('yy/mm/dd', new Date($('#fromdate').datepicker('getDate'))));
    var d = myDate.getDate()+parseInt(val, 10);
    var m =  myDate.getMonth()+1;
    var y = myDate.getFullYear();
    $("#todate").val(new Date(yy+'/'+mm+'/'+dd));
    

    【讨论】:

    • 这可行,但我只希望 to_date 的值采用 yy/mm/dd 格式,而不是显示 Sat Feb 15 2020 00:00:00 GMT+0530(印度标准时间)跨度>
    • 现在试试,我已经更新了 $("#todate").val(new Date(yy+'/'+mm+'/'+dd));
    【解决方案3】:

    试试这个

    $(document).ready(function() {

        $('#txtFromDate').datepicker({
            format: 'dd/mm/yyyy',
            startDate: 'd',
            minDate: new Date('today'),
            language: locale,
            autoclose: true,
            todayHighlight: true
        });
        $('#txtToDate').datepicker({
            format: 'dd/mm/yyyy',
            startDate: '+2d',/change value for to 5 for 5 days
            minDate: '#txtToDate',
            viewMode: 'years',
            language: locale,
            autoclose: true,
        });
    

    【讨论】:

      【解决方案4】:

      希望对你有帮助..

      $(document).ready(function() {
          jQuery("#from").datepicker({
              dateFormat: 'dd/mm/yy',
              changeMonth: true,
              changeYear: true,
              onClose: function( selectedDate ) {
              jQuery( "#to" ).datepicker( "option", "minDate", selectedDate );
              }
          });
          jQuery("#to").datepicker({
              dateFormat: 'dd/mm/yy',
              changeMonth: true,
              changeYear: true,
              onClose: function( selectedDate ) {
              jQuery( "#from" ).datepicker( "option", "maxDate", selectedDate );
              }
          });
      });
      <link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
      <input type="text" id="from">
      <input type="text" id="to">
      
      <script  type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script>
      <script type="text/javascript" src="//code.jquery.com/ui/1.9.2/jquery-ui.js"></script>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多