【问题标题】:How to track an event that happens every X weeks?如何跟踪每 X 周发生的事件?
【发布时间】:2015-08-13 13:35:49
【问题描述】:

我正在用 Laravel、PHP、Jquery 构建一种日历应用程序。用户可以设置重复事件。

在日常活动中没关系,他们可以选择他们希望活动发生的星期几。在每月事件上,也可以,他们可以选择事件将再次发生的月份。

在每周事件中,存在一个问题:由于我们并没有真正在日历中跟踪周数,我真的不知道如何让它重复出现。

我的第一个想法是弄清楚一个月中的哪一周,然后让他们选择他们想要的那一周。行不通,因为几个月有不同的周数——有些发生在 4 周内,有些发生在 5 周内,有些(比如这个)发生在 6 周内。获取我正在使用的月份中的星期的代码:

Date.prototype.getMonthWeek = function(){
    var firstDay = new Date(this.getFullYear(), this.getMonth(), 1).getDay();
    return Math.ceil((this.getDate() + firstDay)/7);
}

$("#result").html("Today is week " + new Date().getMonthWeek() );

然后我的想法是从特定日期开始计算偶数周或奇数周。这将限制我将事件设置为每周或每两周重复一次,但可以正常工作,直到我发现用户除了创建一个事件、测试它是否重复发生之外,真的无法分辨哪一周是偶数还是奇数。

然后,获取一年中的一周。偶数周与奇数周。但如果一年中有奇数周,则在一月份会发生两次。

我正在寻找最简单的方法来实现它,但我真的对此无能为力,有什么可能的解决方案吗?

【问题讨论】:

  • 如果你想知道一年中的哪一周stackoverflow.com/questions/6117814/…
  • 我不明白这里的CS问题。使用某些标准日期库从日期中获取星期数应该没有问题。另外,我不明白你在一月份两次的问题:奇数周的事件总是在一月的第一周和第三周,不管一年有多少周。
  • 如果我得到一年中的周数,假设一年有 67 周,它会在奇数周发生,然后会在 67 和 1 再次发生。不会每 2 周一次
  • 5 周的月份相同

标签: javascript php jquery date


【解决方案1】:

你不能使用类似PHP's date 的函数吗?可以选择一年中的哪一周。

如果你想走 js 路线,我强烈推荐moment.js,你可以这样做:moment().add(‘weeks’, 1)

【讨论】:

    猜你喜欢
    • 2020-11-10
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多