简体   繁体   English

从引导日期时间选择器动态将最小日期传递给jQuery datepicker

[英]dynamically pass min date to jQuery datepicker from bootstrap datetimepicker

I am working on a project, Actually there are two datepickers in my page. 我正在做一个项目,实际上我的页面上有两个日期选择器。 One is bootstrap datepicker and another is jQuery datepicker. 一个是引导日期选择器,另一个是jQuery日期选择器。 There are three date fields, one is for start event date and another is for end event. 有三个日期字段,一个用于开始事件日期,另一个用于结束事件。 Third datepicker is used to select multiple dates. 第三个日期选择器用于选择多个日期。 Now I want that first selected date should work as min date for third datepicker and second datepicker date should work as max date limit for third datepicker. 现在,我希望第一个选择的日期应作为第三个日期选择器的最小日期,第二个日期选择器日期应作为第三个日期选择器的最大日期限制。 I am not able to pass that values. 我无法传递该值。 May be problem arise because of two different datepicker ie one is jQuery datepicker and another is bootstrap datetimepicker. 可能由于两个不同的datepicker而出现问题,即一个是jQuery datepicker,另一个是bootstrap datetimepicker。 Please give me a solution if you have any idea. 如果您有任何想法,请给我一个解决方案。

// code of first datepicker //第一个日期选择器的代码

$('.form_start_datetime').datetimepicker({
    //language:  'fr',
    weekStart: 1,
    todayBtn:  1,
    autoclose: 1,
    startDate: new Date(), 
    todayHighlight: 1,
    startView: 2,
    forceParse: 0,
    showMeridian: 1
 });

// code of second datepicker //第二个日期选择器的代码

 $('.form_end_datetime').datetimepicker({
    //language:  'fr',
    weekStart: 1,
    todayBtn:  1,
    startDate: minDate,
    autoclose: 1, 
    todayHighlight: 1,
    startView: 2,
    forceParse: 0,
    showMeridian: 1


});

// code of multiple date select //多个日期选择的代码

jQuery(function () {
// var startTime = $('#start_date_time').val();
// var splitTime = startTime.split(" ");

if(jQuery("#multi-datepicker").length){
    jQuery("#multi-datepicker").datepicker({
        format :'yyyy-mm-dd',
        minDate: new Date(2018, 1 - 1, 1),
        onSelect: function (dateText, inst) {
            addOrRemoveDate(dateText);
            $(this).data('datepicker').inline = true;
            $('#multi-datepicker').val(dates);
            //console.log(splitTime[0]);
        },
        onClose: function() {
            $(this).data('datepicker').inline = false;
        },
        beforeShowDay: function (date) {

            var year = date.getFullYear();
            // months and days are inserted into the array in the form, e.g "01/01/2009", but here the format is "1/1/2009"
            var month = padNumber(date.getMonth() + 1);
            var day = padNumber(date.getDate());
            // This depends on the datepicker's date format
            var dateString = month + "/" + day + "/" + year;

            var gotDate = jQuery.inArray(dateString, dates);
            if (gotDate >= 0) {
                // Enable date so it can be deselected. Set style to be highlighted
                return [true, "ui-state-highlight"];
            }
            // Dates not in the array are left enabled, but with no extra style
            return [true, ""];
        }

    });

Thanks you in advance 提前谢谢你

In order to achieve the wanted result, you can set the minDate and maxDate of a datepicker inside the onSelect of another datepicker. 为了获得所需的结果,可以在另一个日期选择器的onSelect内设置日期选择器的minDatemaxDate

Exaple: 例如:

$('.form_start_datetime').datetimepicker({

    //language:  'fr',
    weekStart: 1,
    todayBtn:  1,
    autoclose: 1,
    startDate: new Date(), 
    todayHighlight: 1,
    startView: 2,
    forceParse: 0,
    showMeridian: 1,
    onSelect: function() {
        var minDate = $(this).datepicker('getDate'); //get the selected date
        $("#multi-datepicker").datepicker( "option", "minDate", minDate); //sets min date for datepicker
    }
 });

$('.form_end_datetime').datetimepicker({

    //language:  'fr',
    weekStart: 1,
    todayBtn:  1,
    autoclose: 1,
    startDate: new Date(), 
    todayHighlight: 1,
    startView: 2,
    forceParse: 0,
    showMeridian: 1,
    onSelect: function() {
        var maxDate= $(this).datepicker('getDate'); //get the selected date
        $("#multi-datepicker").datepicker( "option", "maxDate", maxDate); //sets max date for datepicker
    }
 });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM