通过从另一个日期选取器中选取日期来禁用 JQuery 日期选取器日期

Disable JQuery datepicker dates by picking a date from another datepicker

本文关键字:选取 日期 JQuery 取日期 另一个      更新时间:2023-09-26

2 个日期选择器 fromdate 和 todate

我的要求是选择一个开始日期,

并且日期不应超过所选开始日期的 30 天,因此当我选择一个开始日期时,它应该只在 todate 日期选择器中启用接下来的 30 天。

我尝试为这些日期选择器实施此工具,但不起作用

//from date
$("#txtTFromDateTeacherDailyReport").datepicker(
    {
        changeMonth : true,
        changeYear : true,
        dateFormat : "dd/mm/yy",
        maxDate : '0',
        beforeShow : function() {
            jQuery(this).datepicker(
                'option',
                'maxDate',jQuery('#txtTToDateTeacherDailyReport').val());
        },
    }).datepicker("setDate", "0");
    //to date                   
    $("#txtTToDateTeacherDailyReport").datepicker(
        {
            changeMonth : true,
            changeYear : true,
            dateFormat : "dd/mm/yy",
            maxDate :'0',
            beforeShow : function() {
            jQuery(this).datepicker(
                        'option',
                        'minDate',
                        jQuery( '#txtTFromDateTeacherDailyReport').val());
            },
        }).datepicker("setDate", "0");

请帮助我摆脱这种情况。

jQuery 日期选择器 - 从所选日期开始强制范围

http://codepen.io/anon/pen/vENJWd

// From Datepicker
$( "#from" ).datepicker({
    defaultDate: "+1d",
    changeMonth: false,
    numberOfMonths: 1,
    minDate: "+1d",
    onClose: function(selectedDate) {
        $( "#to" ).datepicker( "option", "minDate", selectedDate );
        // Change value of second parameter for your needs
        // 7 = One Week, 14 = Two Weeks, etc
        $( "#to" ).datepicker( "option", "maxDate", new_date(selectedDate, 30) );
    }
});
// To Datepicker
$( "#to" ).datepicker({
    defaultDate: "+1w",
    changeMonth: false,
    numberOfMonths: 1
});
// Do not edit below this line
function new_date(old_date, days_after) {
    var month = parseInt(old_date.substring(0, 2))-1;
    var day = parseInt(old_date.substring(3, 5));
    var year = parseInt(old_date.substring(6, 10));
    var myDate = new Date(year, month, day);
    myDate.setDate(myDate.getDate() + days_after);
    var newMonth = myDate.getMonth()+1;
    var newDay = myDate.getDate();
    var newYear = myDate.getFullYear();
    var output = newMonth + "/" + newDay + "/" + newYear;  
    return output;
}
// Created By: Rafael Leonidas Cepeda

我认为这对你有用...

$(function () {
    $("#datepicker1, #datepicker2").datepicker();
    $("#datepicker1").datepicker("option", "onSelect", function (dateText, inst) {
        var date1 = $.datepicker.parseDate(inst.settings.dateFormat || $.datepicker._defaults.dateFormat, dateText, inst.settings);
        var date2 = new Date(date1.getTime());
        date2.setDate(date2.getDate() + 30);
        $("#datepicker2").datepicker("setDate", date2);

    });
});

.html

<p>Date1: <input type="text" id="datepicker1" /></p>
<p>Date2: <input type="text" id="datepicker2" /></p>