时间选择器不应该让我 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
给用户一些排序警告并保持以前的值。
我有 2 个文本框。一个用于日期,一个用于时间。
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
给用户一些排序警告并保持以前的值。