php 所有月份,PHP将月份所有天数分段

[php]代码库//本功能纯属当前项目需要所写,有更好的方法欢迎大家留言探讨

//计算日期所在月份的起始和结束时间

function getMonthRange($date){

$ret=array();

$timestamp=strtotime($date);

$mdays=date('t',$timestamp);

$ret['sdate']=strtotime(date('Y-m-1 00:00:00',$timestamp));

$ret['edate']=strtotime(date('Y-m-'.$mdays.' 23:59:59',$timestamp));

return $ret;

}

//时间分段显示

function getTimePartRange($year,$month,$part){ //年、月,分组个数

$nyear = date('Y',time());

$nmonth = date('m',time());

$nday = date('d',time());

$retday = getMonthRange($year.'-'.$month.'-'.$nday);

$sdate = date('d',$retday['sdate']);

$edate = date('d',$retday['edate']);

if($year==$nyear && $month==$nmonth){

$edate=$nday;

}

for($i=1;$i<=$edate;$i++){

$timeArray[] = $i;

}

$countAry = count($timeArray);

$intAry = floor($countAry/$part); //舍去法取整,为0的时候,表示分组个数大于了日期数,多出的分组个数值为0

$modAry = $countAry%$part; //取余数

$modDay = $part-$modAry; //计算多余天数的分配起始位置

//将时间切割出时段

$z = 0;

if($intAry!=0){

$d = $intAry;

}else{

$d = 1;

}

for($i=1;$i<=$part;$i++){

$timePart[$i] = array_slice($timeArray,$z,$d);

$z += $d;

if($intAry!=0){

if($i == $modDay){

$d = $d+1;

}

}

}

return $timePart;

}

//调用实例

$timePart = getTimePartRange(2015,4,7); //年,月,分组个数

foreach($timePart as $k => $v){

$datePart[$k]['sdate'] = $year.'-'.$month.'-'.$v[0].' 00:00:00';

$datePart[$k]['edate'] = $year.'-'.$month.'-'.end($v).' 23:59:59';

}

694748ed64b9390909c0d88230893790.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值