php 计算一年后的时间,php 计算一年有几周 每周的开始和时间

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); }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值