比如给个时间段 2010-5-16 到2011-2-15
现在要求把它分割成一(月份或星期)的时间段
就是要把它分割成这样的数组:
array(
0=>array('start'=>'2010-5-16','end'=>2010-5-22'),
1=>array('start'=>'2010-5-23','end'=>2010-5-??'),//日期必须有效 不够天就到当月为止
......
)
高手来帮下忙,不甚感激

解决方案 »

  1.   

    设置时间格式DATE_RFC822,然后取星期几和几月echo date(DATE_RFC822,strtotime("-1 day"));//得到昨天
      

  2.   


    $ret = array();
    $start = strtotime('2010-5-16');
    $end = strtotime('2011-2-15');
    $i = 0;while($start <= $end){
    $ret[$i]['start'] = date('Y-m-d',$start);
    $tmp = strtotime("+1 week",$start);
    if($end<= $tmp)
    $ret[$i]['end'] = date('Y-m-d',$end);
    else
    $ret[$i]['end'] = date('Y-m-d',$tmp);

    $i++;
    $start = strtotime("+1 day",$tmp);
    }
    print_r($ret);
      

  3.   

    非常谢谢,只是有点小问题,我看了下代码,我说的是7天一时间段(即每个星期)
    $ret = array();
    $start = strtotime('2010-12-16');
    $end = strtotime('2011-3-15');
    $i = 0;
    while($start <= $end){
        $ret[$i]['start'] = date('Y-m-d',$start);
        //$tmp = strtotime("+1 week",$start);
        $tmp = strtotime("+6 days",$start);
        if($end<= $tmp)
            $ret[$i]['end'] = date('Y-m-d',$end);
        else
            $ret[$i]['end'] = date('Y-m-d',$tmp);
        
        $i++;
        $start = strtotime("+1 day",$tmp);
    }
    print_r($ret);
    这样就行拉
    再次谢谢2位的帮忙!!!!!