function getWeekStartAndEnd ($year,$week) {
header("Content-type:text/html;charset=utf-8");
date_default_timezone_set("Asia/Shanghai");
$year = (int)$year;
$week = (int)$week;
//按给定的年份计算本年周总数
$date = new DateTime;
$date->setISODate($year, 53);
$weeks = max($date->format("W"),52);
//如果给定的周数大于周总数或小于等于0
if($week>$weeks || $week<=0){
return false;
}
//如果周数小于10
if($week<10){
$week = '0'.$week;
}
//当周起止时间戳
$timestamp['start'] = strtotime($year.'W'.$week);
$timestamp['end'] = strtotime('+1 week -1
day',$timestamp['start']);
//当周起止日期
$timeymd['start'] = date("Y-m-d",$timestamp['start']);
$timeymd['end'] =
date("Y-m-d",$timestamp['end']); //返回起始时间戳
//return $timestamp;
//返回日期形式
return $timeymd;
}
print_r(getWeekStartAndEnd(2014,2));
变量:2014为年
变量:2为第二周
返回Array ( [start] => 2014-01-06 [end] => 2014-01-12 )
$num=intval(date('W',time()));
$arr=array();
$num=$num-1;
for($i=0;$i<=$num;$i++)
{
$arr[]=GetWeekDate('2014',$i);
}
for($i=$num;$i>=1;$i--)
{
$s=strtotime($arr[$i][0]);
$d=strtotime($arr[$i][1]);
$start_time = mktime( 0, 0, 0, date("m",$s),
date("d",$s),date("Y",$s)); $end_time = mktime( 23, 59, 59, date("m",$d),
date("d",$d),date("Y",$d));//最后一周的结束时间搓
echo $start_time=date("Y-m-d
H:i:s",$start_time);
//echo '-------';
$end_time=date("Y-m-d",$end_time);
//$nowtime=date("Y-m-d",time());
$nowtime="2014-02-23";
echo $nowtime.'---'.$end_time.'---';
$Date_1=$nowtime;
$Date_2=$end_time;
$Date_List_1=explode("-",$Date_1);
$Date_List_2=explode("-",$Date_2);
$d1=mktime(0,0,0,$Date_List_1[1],$Date_List_1[2],$Date_List_1[0]);
$d2=mktime(0,0,0,$Date_List_2[1],$Date_List_2[2],$Date_List_2[0]);
$Days=round(($d1-$d2)/3600/24);
echo $Days;echo '
';
}
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); }