选择当前日期时,请将讯息显示为You cannot select a day earlier than today
。
function checkDate(sender, args) {
if (sender._selectedDate) < new Date()) {
alert("You cannot select a day earlier than today!");
sender._selectedDate = new Date();
sender._textbox.set_Value(sender._selectedDate.format(sender._format))
}
}
比较无法正常运作。
请帮帮我。
答案 0 :(得分:0)
我猜测你的sender._selectedDate
的小时,分钟,秒和毫秒数为0。您要比较它的new Date()
将设置为当前时间的小时,分钟,秒和毫秒,这可能晚于_selectedDate
。因此,您应该创建新日期,然后将其小时,分钟,秒和毫秒设置为0.然后您可以正确地比较日期。您可以使用setHours()
,并传递小时,分钟,秒和毫秒。另外,感谢@andrex注意到您也有语法错误:在发送者__selectedDate之后删除)
。
function checkDate(sender, args) {
var earliestDate = new Date();
earliestDate.setHours(0,0,0,0);
if (sender._selectedDate < earliestDate) {
alert("You cannot select a day earlier than today!");
sender._selectedDate = earliestDate;
sender._textbox.set_Value(sender._selectedDate.format(sender._format));
}
}
答案 1 :(得分:0)
不确定日期验证的数据是如何使用的,因此会想到几个解决方案。
无论如何,我会将日期分为(年/月/日/小时)等部分,并且(+/-)查明其中一个或另一个(年/月/日/小时)等不比较或比你的校验和变量早一点cq。
我认为你只想比较(年/月/日),所以那些检查有效时会丢弃剩下的!
var dag = nu.getDate();
var wkdag = nu.getDay();
var maand = nu.getMonth();
var jaar1 = nu.getYear();
顺便说一句。考虑到它,如果立即或稍后检查表单会产生很大的不同,因为在功能验证和发送消息之间经过的时间越多,日期更早的可能性越大,如果立即检查并使用服务器时间错误的机率最小,但即使这样,如果在24:00发送,日期cq日的验证将在第二天完成。你可能会想到一些代码来堵塞洞!