功能提醒我一个约会

时间:2015-11-19 13:22:39

标签: javascript

我有一个功能,它代表一个从开始日期起2周的日期,按每个星期四过去计算,但不包括日期的星期四。

function GetThursdayIn2Weeks(date)
{
    var day = date.getDay();

    // Add 2 weeks.
    var newDate = new Date(date.setTime(date.getTime() + (14 * 86400000)));

    // Adjust for Thursday.
    var adjust = 4 - day;
    if (adjust <= 0) // Might need to be changed - See comments!
      adjust +=7;

    // Apply Thursday adjustment.
    newDate = new Date(newDate.setTime(newDate.getTime() + (adjust * 86400000)));

    return newDate;    
}

如何在过程开始一周后开始每天通过一个不同的功能,让我想起即将到期的日期,但是在流程日期结束之前?

1 个答案:

答案 0 :(得分:0)

您可以使用setTimeout()在设定的时间后执行提醒。但是,问题是你的javascript环境可能不会长时间运行,无论是node.js还是你的浏览器。

我会建议那些机制:

  • 使用您的给定代码
  • 计算目标日期后,将其存储在localstorage中
  • 定义一个函数,该函数将使用setTimeout()为给定的目标日期定义下一次出现的提醒
  • 加载页面时,对localstorage中存储的每个日期使用该函数
  • 将日期添加到localstorage,或者给定目标日期达到其中一个提醒时,请调用此特定日期的函数

上述功能应设置第一天的计时器,该计时器同时大于当前日期,大于目标日期前一周的第1天,且低于目标日期。

这是一个“有希望”的工作JSFiddle