我有一个ID" dtpicker"。
的日期选择器如果所选日期在当天(今天)之后的五个工作日内,我需要确保用户会收到警告弹出窗口。
我有一个几乎可行的解决方案:
function DateRule()
{
var dt = new Date();
dt.setDate(dt.getDate() + 5);
var date = dt.toISOString().substring(0, 10);
userdatepick = NWF$("#" + datepicker).val();
if (userdatepick < date)
{
alert("Reminder: you have selected a startdate that is earlier then five workingdays from todays date")
}
}
我在今天的日期进行了测试,它的工作方式几乎与我在2010-10-18 - 2010-10-22之间通过datepicker选择日期时的情况一样。我收到了正确的提醒提醒。当我选择2010-10-23时,我没有得到提醒警报,但它应该从周末那天开始,而不是工作日。 2010-10-25不应该给出提醒想法。
在将当前日期(今天)添加五天时,解决方案是否可以忽略周末日。举个例子,当我向我的变量添加五天它会在周末跳过吗?
感谢任何帮助或提示
答案 0 :(得分:1)
您可以验证类似下面的内容。
function validateDate(txtDate) {
var selectedDate = new Date(txtDate),
date = new Date(),
days = 5;
while (days > 0 && (date = new Date(date)) < selectedDate) {
date = date.setDate(date.getDate() + 1);
if (!isWeekend(date)) {
days -= 1;
}
}
if (days !== 0) {
console.log("Reminder: you have selected a startdate that is earlier then five workingdays from todays date");
}
}
var isWeekend = function(date) {
var dt = new Date(date);
if (dt.getDay() == 6 || dt.getDay() == 0 /* check here for holidays */) {
return true;
}
return false;
}
validateDate("Oct 23, 2016");