我正在开发一个系统,根据每周的表现为用户提供激励。 因此,当我一年又一年地过去时,我希望第一周的开始形式是星期一,而上周将是在同一个月有星期日的那个,否则它应该在下个月计算。 例如;
如果我通过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
同样明智的,无论何时我都想要这种类型的结果。
答案 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 { 处理下个月的奖励 }
或其他相似之处。如果最后一天除了周日之外的任何事情,你永远不会在当月有一个星期日。
不确定这是否有帮助。希望它确实如此,如果没有希望它会让你偏离正确。