提醒我约会的功能

function reminding me about a date

本文关键字:功能 约会      更新时间:2023-09-26

我有一个函数,它表示一个从开始日期起两周的日期,按每一个经过的星期四计算,但不包括日期所在周的星期四。

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;    
}

我该如何让它在流程开始一周后的每一天都引发一个不同的功能,提醒我即将到来的预产期,但在流程结束之前?

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

我建议采用以下机制:

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

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

这是一个"希望"工作的JSFiddle。