给定月份的特定周数

时间:2014-03-11 18:10:42

标签: php date

我正在开发一个系统,根据每周的表现为用户提供激励。 因此,当我一年又一年地过去时,我希望第一周的开始形式是星期一,而上周将是在同一个月有星期日的那个,否则它应该在下个月计算。 例如;

如果我通过month = '03'year = '2014',我想要关注几周:

week 1: 2014-03-03 to 2014-03-09 // Coz 03 has first monday in a month
 week 2: 2014-03-10 to 2014-03-16
 week 3: 2014-03-17 to 2014-03-23
 week 4: 2014-03-14 to 2014-03-30
现在,31日有星期一,但在同一个月(3月)没有星期日,在4月结束所以不计算。 现在,如果我通过$ month ='04'和year ='2014' 第1周应该是:2014-03-31至2014-04-06 同样明智的,无论何时我都想要这种类型的结果。

2 个答案:

答案 0 :(得分:1)

您不必创建自己的周编号系统,只需使用ISO-8601 week number

在PHP中,您可以使用date('W')获取当前周数,并且可以获得特定日期的周数:date('W', strtotime('2014-03-11')。有关详细信息,请查看date()strtotime()的文档。

答案 1 :(得分:0)

您需要做的是(伪代码)

$ h将是unix格式的月份的最后一天(mktime) 在数字表示中0是星期日

$ h = mktime(0,0,0,日期(“m”),0,日期(“Y”)); $ w =日期(“w”,$ h);

if($ w == 0){    处理当月的奖励 } else {    处理下个月的奖励 }

或其他相似之处。如果最后一天除了周日之外的任何事情,你永远不会在当月有一个星期日。

不确定这是否有帮助。希望它确实如此,如果没有希望它会让你偏离正确。