【问题标题】:How does weekly reminders work?每周提醒如何运作?
【发布时间】:2012-12-12 12:06:39
【问题描述】:

是否有每周提醒的算法?

例如,我设置了星期四的提醒并选中了“每周”选项。
提醒应该是每周四提醒,但是这是怎么做到的呢?

我想到了一个主意,但我想这很愚蠢:

  1. 获取今天的“日”。
  2. 获取今天的“日期”。
  3. 获取想要的天数。
  4. 将这两天相减。
  5. 使用 [4] 获取当天的日期。
  6. 在每次警报后将计数器增加 7。

我什至不知道这是否可行,我确信有更好的方法来做到这一点,所以在开始实施之前我需要您的意见。

PS:我使用 JavaScript,所以功能非常有限。

【问题讨论】:

  • 想想您的问题以及需要回答的上下文。你可能有这些知识,但除非你把它作为一个明确的问题连贯地写下来,否则很难专门回答。
  • 您能更具体地说明您要完成的工作吗?例如,如果您希望每 7 天调用一次函数,您可以简单地在其末尾添加 setTimeout(myFunction, 3600*24*7);

标签: javascript dayofweek reminders gettimeofday


【解决方案1】:

目前还不完全清楚你要做什么。

  1. 如果您的代码需要知道是否是星期四,使用getDay 非常容易,它会为您提供星期几:

    if (new Date().getDay() === 4) {
        // It's Thursday
    }
    

    day numbers0 开头 = 星期日。

  2. 如果您的代码需要查找从给定日期开始的下周四:

    var dt = /* ...the start date... */;
    while (dt.getDay() !== 4) {
        dt.setTime(dt.getTime() + 86400000)) // 86400000 = 1 day in milliseconds
    }
    

    或者当然没有循环:

    var dt = /* ...the start date... */;
    var days = 4 - dt.getDay();
    if (days < 0) {
        days += 7;
    }
    dt.setTime(dt.getTime() + (days * 86400000));
    
  3. 如果您已经有一个星期四并且您需要知道下一个星期四的日期:

    var nextThursday = new Date(thisThursday.getTime() + (86400000 * 7));
    

【讨论】:

  • 太棒了!非常感谢……这正是我所需要的。
  • @SanaJoseph:太好了,很高兴有帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-19
  • 2022-01-03
  • 1970-01-01
  • 2015-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多