我有 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”是日期文本框,但它不起作用。因此,当我选择较早的日期时,我可以选择所有 24 小时,但是当我选择今天时,它应该将我限制在当前时间。
答案 0 :(得分:1)
在尝试我在下面编写的方法之前,我鼓励您阅读插件文档 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);
}
});
祝你好运!
答案 1 :(得分:0)
这是一个相对简单的函数来解决这个问题:
const isInThePast = date => {
const now = new Date()
if (typeof date !== typeof now) return "Invalid Date"
else return date < now ? true : false
}
您可以在每个日期更改事件上调用此函数,如果它返回 true
,则设置该值,如果它返回 false
,则向用户发出某种警告并保留以前的值。>