我有一个随机日期数组(不是来自MySQL)。我需要按一周将它们分组为Week1,Week2,依此类推,直到Week5。
我所拥有的是:
$dates = array('2015-09-01','2015-09-05','2015-09-06','2015-09-15','2015-09-17');
我需要的是一个通过提供日期来获取月份的星期数的功能。
我知道可以通过执行操作获得 date('W',strtotime('2015-09-01')); 周号,但是本周号是年份(1-52)之间的数字,但是我只需要一个月的周号,例如,在2015年9月有5周:
date('W',strtotime('2015-09-01'));
我应该能够通过提供日期来获得Week1
$weekNumber = getWeekNumber('2015-09-01') //output 1; $weekNumber = getWeekNumber('2015-09-17') //output 3;
我认为这种关系应该是正确的并且派上用场:
Week of the month = Week of the year - Week of the year of first day of month + 1
在PHP中实现,您将获得以下信息:
function weekOfMonth($date) { //Get the first day of the month. $firstOfMonth = strtotime(date("Y-m-01", $date)); //Apply above formula. return intval(date("W", $date)) - intval(date("W", $firstOfMonth)) + 1; }
要获得从星期日开始的几周,只需将都替换date("W", ...)为strftime("%U", ...)。
date("W", ...)
strftime("%U", ...)