php中怎么取得指定日期的年,编程技巧:PHP中如何取得指定年份第几周的具体日期范围?...

PHP中如何取得指定年份第几周的具体日期范围?是否有现成的函数?

比如我现在想要2010年第10周对应的具体的日期范围。

-------------------------------------------------

下面我用自己写的函数实现了取这个日期范围的功能这里假设第1周指的是每年第1个完整的周):

/* 功能:获取指定年周对应的日期

参数1:年号,字符型或数值型 (例:2011)

参数2:周号,字符型或数值型 (例:4)

返回:时间戳型日期

*/

function getWeekNoToFirstDay($sYear,$sWeekNo){

$iFirstWeekDay = date('w',strtotime($sYear.'-01-01'));

if($iFirstWeekDay != 1){//指定年的1月1号不是星期一

if($iFirstWeekDay === 0){//星期天

$iFirstWeekDay = 7;

}

$iAdjustDay = (8 - $iFirstWeekDay)+($sWeekNo-1)*7;

$dateFirstFullWeekBeginDate = strtotime("+{$iAdjustDay} day",strtotime($sYear.'-01-01'));

}else{

$iAdjustDay = ($sWeekNo-1)*7;

$dateFirstFullWeekBeginDate = strtotime("+{$iAdjustDay} day",strtotime($sYear.'-01-01'));

}

return $dateFirstFullWeekBeginDate;

}

/* 功能:获取指定年周对应的日期范围文本

参数1:年号,字符型或数值型 (例:2011)

参数2:周号,字符型或数值型 (例:4)

返回:字符型的不带年份的日期范围文字(例:"3.2-3.8")

*/

function getWeekNoToDateRange($sYear,$sWeekNo){

$dateTemp=getWeekNoToFirstDay($sYear,$sWeekNo);

$sDateRange = date('n.j',$dateTemp).'-'.date('n.j',strtotime("+6 day",$dateTemp));

return $sDateRange;

}

/* 功能:获取指定2个年周之间的周数   参数1:开始年号,字符型或数值型 (例:2011)   参数2:开始周号,字符型或数值型 (例:4)   参数1:结束年号,字符型或数值型 (例:2011)   参数2:结束周号,字符型或数值型 (例:26)   返回:数值型*/function getWeekNoToTotalWeeks($from_year,$from_week,$end_year,$end_week){ if(!$from_year or !$from_week or !$end_year or !$end_week){  return -1; } $time_from_yearweek=getWeekNoToFirstDay($from_year,$from_week); $time_end_yearweek=getWeekNoToFirstDay($end_year,$end_week); $total_weeks=($time_end_yearweek-$time_from_yearweek)/86400/7; if($total_weeks >= 0){  $total_weeks++; } return $total_weeks;}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值