您的位置:首页 > 其它

自然周,自然月

2011-12-14 17:00 405 查看
 
/**
* 功能:获得某个时间段内,所有的自然周
* @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的代码,记录以备使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  date string