如果选择的日期是在当前日期(今天)的五个工作天内

Alert if selected date is within five working day from current date(today)

本文关键字:五个 工作 选择 当前日期 如果 今天 日期      更新时间:2023-09-26

我有一个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")
  }
}

我用今天的日期测试了这个,它的工作原理几乎和它假设的一样,当我通过datepicker在2010-10-18 - 2010-10-22之间选择日期时,我得到了警报提醒,这是正确的。当我选择2010-10-23时,我没有收到提醒提醒,但它应该是周末而不是工作日。2010-10-25不应给予提醒。

解决方案是在当前日期(今天)上添加五天时忽略周末。例如,当我在变量中添加五天时,它会跳过周末?

任何帮助或提示都是感激的

您可以验证如下所示的内容。

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");