时间选择器不应该让我 select 时间比现在多

Time Selector should not let me select time more than now

我有 2 个文本框。一个用于日期,一个用于时间。 。 我可以设置 maxDate: new Date 但这将适用于我从日历中选择的每个日期。 我也试过了

$('#datetimepickerExample').datetimepicker({
                format: 'LT', stepping: 1, autoclose: true,
                onClose: function (selectedDate) {
                    $("#ContentPlaceHolder1_Event_Date_Txt").datepicker("option", "maxDate", selectedDate);
                }
            });

其中“ContentPlaceHolder1_Event_Date_Txt”是日期文本框,但它不起作用。因此,当我选择一个较早的日期时,我可以 select 所有 24 小时,但是当我今天 select 时,它应该将我限制在当前时间。

在尝试我在下面编写的方法之前,我鼓励您阅读插件文档 here。我没有阅读整个文档,但我想至少为您指出一个方向。

1 - 您应该获取当前系统日期和时间。

您可以通过 JavaScript GetDate() Method

实现
function getNow() { 
    var e = new Date, 
    month = e.getMonth() + 1, 
    date = e.getDate(), 
    year = e.getFullYear(); 
    month < 10 && (month = "0" + month.toString()), date < 10 && (date = "0" + date.toString()); 
    var currentTime = e.getHours() + ":" + e.getMinutes();
    var currentDate = month + "/" +  date + "/" + year; 

    //currentDate
    //03/27/2021   

    //currentTime
    //11:20
}

2 - 如果当前日期等于您选择的日期,您应该将最大时间输入限制为当前时间。我相信您可以使用下面的代码实现这一目标。正如我所说,我没有阅读您正在使用的插件的文档。

$("#ContentPlaceHolder1_Event_Date_Txt").datepicker({
    onSelectDate:function(currentTime){
      $('#datetimepickerExample').datetimepicker("option", "maxTime", currentTime);
    }
});

祝你好运!

这里有一个相对简单的函数可以解决这个问题:

const isInThePast = date => {
    const now = new Date()
    if (typeof date !== typeof now) return "Invalid Date"
    else return date < now ? true : false
}

您可以在每个日期更改事件上调用此函数,如果它 returns true,设置值,如果它 returns false 给用户一些排序警告并保持以前的值。