Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果设置了defaultDate,则链接的Datetimepicker不会更新_Javascript_Datetimepicker - Fatal编程技术网

Javascript 如果设置了defaultDate,则链接的Datetimepicker不会更新

Javascript 如果设置了defaultDate,则链接的Datetimepicker不会更新,javascript,datetimepicker,Javascript,Datetimepicker,我使用带有一对链接选择器的datetimepicker 初次加载时,“开始日期”应显示当前日期,“到期日期”应显示“开始日期+30天”。这正是我们想要的。但是,当选择新的“开始日期”时,到期日期应始终默认为提前30天 这就是我所拥有的: $(function () { function plusCalendarMonthToDate(e) { return moment(e.date).add(30, 'days').millisecond(0).seco

我使用带有一对链接选择器的datetimepicker

初次加载时,“开始日期”应显示当前日期,“到期日期”应显示“开始日期+30天”。这正是我们想要的。但是,当选择新的“开始日期”时,到期日期应始终默认为提前30天

这就是我所拥有的:

$(function () {
        function plusCalendarMonthToDate(e) {
            return moment(e.date).add(30, 'days').millisecond(0).second(0).minute(0).hour(0)
        }
        defaultStartDate = new Date();
        $('#datetimepicker-start').datetimepicker({
            format: 'YYYY-MM-DD 00:00:00',
            minDate: defaultStartDate,
            defaultDate: defaultStartDate
        });
        $('#datetimepicker-expiry').datetimepicker({
            useCurrent: false,
            format: 'YYYY-MM-DD 00:00:00',
            minDate: $('#datetimepicker-start').val(),
            defaultDate: plusCalendarMonthToDate(defaultStartDate)
        });
        $("#datetimepicker-start").on("dp.change", function (e) {
            $('#datetimepicker-expiry').data("DateTimePicker").minDate(e.date);
            // when a start_date is selected, set the expiry to 30 days plus
            plusCalendarMonth = plusCalendarMonthToDate(e);
            $('#datetimepicker-expiry').data("DateTimePicker").defaultDate(plusCalendarMonth);
        });
        $("#datetimepicker-expiry").on("dp.change", function (e) {
            $('#datetimepicker-start').data("DateTimePicker").maxDate(e.date);
        });
    });

选择新的开始日期时,到期日期不会更新。我想这是因为我已经在初始化中设置了“defaultDate”,如果我删除了它,那么该功能就会工作,但当我丢失了到期日的初始默认值时。如何重写初始的defaultDate?

解决方案似乎是使用“date()”而不是“defaultDate()”:


如果您只是将一个月添加到当前日期,为什么需要
defaultStartDate
作为参数?如果只在函数中实例化日期,然后添加一个月并返回它,不是更有意义吗?@Mike我只在第一次加载时将当前日期添加30天。一旦选择了开始日期,也必须将30天添加到该日期/
$('#datetimepicker-expiry').data("DateTimePicker").date(plusCalendarMonth)