【发布时间】: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