如果选择日期在当前日期(今天)之后的五个工作日内发出警报

时间:2016-10-18 13:21:48

标签: javascript jquery date

我有一个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不应该给出提醒想法。

在将当前日期(今天)添加五天时,解决方案是否可以忽略周末日。举个例子,当我向我的变量添加五天它会在周末跳过吗?

感谢任何帮助或提示

1 个答案:

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