因为项目中需要一个每周工作计算的功能,具体日期的算法是,把每月拆分成几个周,最后一个星期这个月份的天数不够就补上下个月的。
列如今天8月27星期一,这个月有31天,但是这个星期最后的一天是9月1号,所以要把9月1号加到8月份,然后9月的第一周就要重9月2号开始算,以此类推
下面就直接贴代码了
//计算某一年某个月有几周 function get_weekinfo($month) { $weekinfo = array();//创建一个空数组 $end_date = date('d',strtotime($month.' +1 month -1 day'));//计算当前月有多少天 for ($i=1; $i <$end_date ; $i=$i+7) { //循环本月有多少周 $w = date('N',strtotime($month.'-'.$i)); //计算第一天是周几 $weekinfo[] = array(date('Y-m-d',strtotime($month.'-'.$i.' -'.($w-1).' days')),date('Y-m-d',strtotime($month.'-'.$i.' +'.(7-$w).' days'))); } //当周开始时间 //结束时间 return $weekinfo; }