选择除今天以外的日期时为什么时间戳不能降级?

我的html代码是这样的:

我的JavaScript代码如下:

 $(function () { $('#datepicker').datetimepicker(); $('#timepicker').datetimepicker({ minDate: moment().startOf('minute').add(300, 'm'), }); }); $("#btnSubmit").click(function() { value = document.getElementById('datetimepicker').value; console.log(value) }); 

这样的演示: https : //jsfiddle.net/8jpmkcr5/89/

如果我单击时间戳并单击减量小时图标,则它不起作用。 我知道它发生是因为这段代码: minDate: moment().startOf('minute').add(300, 'm') 。 我希望代码只在这一天工作。 除了今天,代码不起作用

我该怎么做?

你的#datepicker#timepicker无关的 ,它们完全独立 ,由你来联系它们。 您可以使用minDate函数以动态方式设置#timepicker minDate

您可以为dp.change事件添加列表器,并在所选日期为当前日期时启用或禁用#timepicker chceking的minDate (使用momentjs isSame )。

如果您要禁用过去的日期,则必须将minDate选项添加到#datepicker ,如评论中所述。

这是一个工作样本:

 $(function () { $('#datepicker').datetimepicker({ minDate: moment().startOf('day') }).on('dp.change', function(e){ if( e.date && e.date.isSame(moment(), 'd') ){ var min = moment().startOf('minute').add(300, 'm'); $('#timepicker').data("DateTimePicker").minDate(min); } else { $('#timepicker').data("DateTimePicker").minDate(false); } }); $('#timepicker').datetimepicker({ minDate: moment().startOf('minute').add(300, 'm'), }); }); $("#btnSubmit").click(function() { value = document.getElementById('datepicker').value; console.log(value) valueTime = document.getElementById('timepicker').value; console.log(valueTime) }); 
       

如果您只想将输入限制为今天,为什么要尝试设置时间选择器的限制? 您应该在日期选择器上设置限制