jQuery 的 datepicker 日期和日期逻辑

Posted

技术标签:

【中文标题】jQuery 的 datepicker 日期和日期逻辑【英文标题】:datepicker days and date logic for jquery 【发布时间】: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("");
    
);

【问题讨论】:

【参考方案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>

【讨论】:

以上是关于jQuery 的 datepicker 日期和日期逻辑的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 的 datepicker 日期和日期逻辑

Datepicker 如何仅选择未来日期并禁用 JQuery 和 CSS 中的过去日期?

突出显示两个选定日期之间的日期 jQuery UI Datepicker

Datepicker jQuery 和 Gravity 表单的开始和结束日期

Jquery DatePicker 设置默认日期

Jquery datepicker下拉列表显示当前日期而不是所选日期