Javascript 如何跟踪每X周发生一次的事件?

Javascript 如何跟踪每X周发生一次的事件?,javascript,php,jquery,date,Javascript,Php,Jquery,Date,我正在用Laravel、PHP和Jquery构建一种日历应用程序。用户可以设置重复事件 在日常活动中,他们可以选择一周中希望活动发生的日期。在每月事件上,也可以选择事件将重新发生的月份 关于每周活动,有一个问题:因为我们没有在日历中真正跟踪周,所以我真的不知道如何让它重现 我的第一个想法是算出一个月中的哪一周,然后让他们选择他们希望发生的事情。不起作用,因为月份的周数不同——有些发生在4周内,有些发生在5周内,有些像这样的发生在6周内。获取我使用的月份的周数的代码: Date.prototype

我正在用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() );
然后我的想法是从一个特定的日期开始,得到偶数周或奇数周。这将限制我将事件设置为每周或每两周重复一次,但效果良好,直到我发现用户除了创建事件之外,无法真正判断哪一周是偶数周还是奇数周,并测试它是否再次发生

然后,获得一年中的一周。偶数周与奇数周。但如果一年的周数是奇数,那么它将在一月份发生两次


我正在寻找最简单的方法来实现这个目标,我真的没有脑力了,有什么可能的解决方案吗?

你不能用函数之类的东西吗?它可以选择一年中的一周


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

如果你想知道一年中的哪一周,我不理解这里的CS问题。使用一些标准的日期库从一个日期中获取一个周数应该没有问题。另外,我不明白你一月份有两次的问题:奇数周的事件总是在一月的第一周和第三周发生,不管一年有多少周。如果我得到一年中的周数,假设一年有67周,它将在奇数周发生,那么它将在67周和1周再次发生。在有5周的月份里,不会每2周一次