start_dt:指开始时间,end_dt:结束时间
前几天唠叨写过一个MM-DD格式的,现在这个是YYYY-MM-DD HH:MM:SS格式的,不过一般MM:SS都是0

解决方案 »

  1.   

    有什么区别吗?
    function foo($v) {
      static $p=0;
      if($p == 0) {
        $p = $v['end_dt'];
        return false;
      }
      if($v['start_dt'] <= $p) {
        $p = max($p,$v['end_dt']);
        return false;
      }
      $o = array('start_dt' => date("Y-m-d H:i:s",strtotime($p)+1),
                 'end_dt' => date("Y-m-d H:i:s",strtotime($v['start_dt'])-1));
      $p = $v['end_dt'];
      return $o;
    }foreach($a as $v) {
    echo  $p = foo($v);
      if(is_array($p))
        $out[] = $p;
    }
    print_r($out);不过你给的数据无解
      

  2.   

    <?
    $a[0]['start_dt'] = '2001-02-02 02:00:00';$a[0]['end_dt']  = '2004-12-12 12:00:00';
    $a[1]['start_dt'] = '2004-04-04 04:00:00';$a[1]['end_dt']  = '2005-01-01 01:00:00';
    $a[2]['star_dt']  = '2005-09-09 09:00:00';$a[2]['end_dt']  = '2006-01-01 01:00:00';
    ?>
    这个明显有解,可是也不行阿,$a[0]['end_dt']也可以大于$a[1]['start_dt'];
      

  3.   

    $a[0]['start_dt'] =925; $a[0]['end_dt']=1125;
    $a[1]['start_dt'] =1015;$a[1]['end_dt']=1024;
    $a[2]['start_dt'] =1028;$a[2]['end_dt']=1120;
    现在就算纯数字的了,就象上面那个
      

  4.   

    当然有啦
    Array
    (
        [0] => Array
            (
                [start_dt] => 2005-01-01 01:00:01
                [end_dt] => 2005-09-09 08:59:59
            ))
    你不觉得$a[2]['star_dt']  = '2005-09-09 09:00:00';写错了吗?
    $a[2]['start_dt']  = '2005-09-09 09:00:00';吧?