//年的第几周
echo intval(date('W',strtotime('2012-10-30')));
echo
floor
(((
mktime
(0,0,0,10,25,2008) -
mktime
(0,0,0,1,1,2008)))/(3600*24*7))+1,
"\n"
;
=============================================
//取出格式如: 2014-20
$dateym="2014-52";
$arrdate= explode("-",$dateym);
//echo $arrdate[0]."+".$arrdate[1];
$year=$arrdate[0];//年份
if($strdate!=0){
$weeknum=$arrdate[1]+$strdate+1;
}else{
$weeknum=$arrdate[1];
}
function getWeekDate($year,$weeknum){
$firstdayofyear=mktime(0,0,0,1,1,$year);
$firstweekday=date('N',$firstdayofyear);
$firstweenum=date('W',$firstdayofyear);
if($firstweenum==1){
$day=(1-($firstweekday-1))+7*($weeknum-1);
$startdate=date('Y-m-d',mktime(0,0,0,1,$day,$year));
$enddate=date('Y-m-d',mktime(0,0,0,1,$day+6,$year));
}else{
$day=(9-$firstweekday)+7*($weeknum-1);
$startdate=date('Y-m-d',mktime(0,0,0,1,$day,$year));
$enddate=date('Y-m-d',mktime(0,0,0,1,$day+6,$year));
}
$datey=explode("-",$enddate);//分别取数组中的出年月日
$weeks = floor(((mktime (0,0,0,$datey[1],$datey[2],$datey[0]) - mktime(0,0,0,1,1,$datey[0])))/(3600*24*7))+1;//取出一年中第几周
echo $datey[0]."-". $weeks;
//return array($startdate,$enddate,$weeks);
}
print_r(getWeekDate($year,$weeknum));
//原始的
function getWeekDate($year,$weeknum){
$firstdayofyear=mktime(0,0,0,1,1,$year);
$firstweekday=date('N',$firstdayofyear);
$firstweenum=date('W',$firstdayofyear);
if($firstweenum==1){
$day=(1-($firstweekday-1))+7*($weeknum-1);
$startdate=date('Y-m-d',mktime(0,0,0,1,$day,$year));
$enddate=date('Y-m-d',mktime(0,0,0,1,$day+6,$year));
}else{
$day=(9-$firstweekday)+7*($weeknum-1);
$startdate=date('Y-m-d',mktime(0,0,0,1,$day,$year));
$enddate=date('Y-m-d',mktime(0,0,0,1,$day+6,$year));
}
return array($startdate,$enddate);
}