自然周,自然月

 
/**
 * 功能:获得某个时间段内,所有的自然周
 * @param string $date 
 * return array Array 
 */
function getWeek(array $date){
//得到开始的一周
$minux = strtotime($date[0]);
$arr = getdate($minux); 
$startWeek =  $minux+((7-$arr['wday'])*60*60*24);
//firstWeek
$firstWeek = array($minux,$startWeek);
//得到最后一周
$lastMinux = strtotime($date[1]);
$lastDateArr = getdate($lastMinux);
$lastWeekDay   =  $lastMinux - ($lastDateArr['wday']*60*60*24);
$lastWeek = array($lastWeekDay,$lastMinux);
//中间部分一周生成数组
$okArr = array();
$startDay = $startWeek;
/ar_dump($startDay < $lastWeekDay);
while($startDay < $lastWeekDay){
$endDay = $startDay+60*60*24*7;
$newArr[] = array($startDay,$endDay);
$startDay = $endDay;
}
array_unshift($newArr,$firstWeek);
array_push($newArr,$lastWeek);
return $newArr;
}





/**
 * 功能:获得某个时间段内,所有的自然月
 * @param string $date 
 * return array Array 
 */
function getMonth(array $data){
$firstdate = $data[0];
$lastdate = $data[1];
$start=intval(date("m",strtotime($firstdate)));
$end=intval(date("m",strtotime($lastdate)));
for($i=$start;$i<=$end;$i++){
$firstday = date("Y-".$i."-01",strtotime($firstdate));
$lastday = date("Y-m-d",strtotime("$firstday +1 month -1 day")); 
$result[]=array('firstday' => $i == $start?strtotime($firstdate):strtotime($firstday),'lastday'=> $i == $end?strtotime($lastdate):strtotime($lastday));
}
return $result;
} 

源于某群snuser的代码,记录以备使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值