设$a=TimeFrom值,$b=TimeTo值。
……晕,怎么出来个60分种?

解决方案 »

  1.   

    <?php
    $s = "08:00";
    $e = "19:00";
    $sar = explode(":", $s);
    $ear = explode(":", $e);
    $ss = $sar[0]*60*60 + $sar[1]*60;
    $es = $ear[0]*60*60 + $ear[1]*60;
    while($ss < $es){
    $hour = floor($ss/3600);
    $minute = $ss%3600/60;
    $ss+=45*60;
    $hour1 = floor($ss/3600);
    $minute1 = $ss%3600/60;
    echo (strlen($hour) < 2 ? "0".$hour : $hour ).":".(strlen($minute) < 2 ? "0".$minute : $minute )."-".(strlen($hour1) < 2 ? "0".$hour1 : $hour1 ).":".(strlen($minute1) < 2 ? "0".$minute1 : $minute1 )."<br>";
    $ss+=15*60;
    }
    ?>
      

  2.   

    谢谢,keaizhong
    这个60是可以变化的,现在是60分钟,下次可能是30分钟:(
    我的意思是我在timeslot里插入了一条记录,例如TimeFrom为08:00,TimeTo为19:00,SlotPeriod为60分钟,然后我的需要就是根据这三个变量生成
    08:00-08:45
    09:00-09:45
    10:00-10:45
    11:00-11:45
    12:00-12:45
    13:00-13:45
    14:00-14:45
    15:00-15:45
    16:00-16:45
    17:00-17:45
    18:00-18:45
      

  3.   

    <?php
    /* 
     * 生成24小时之内的时间循环
     * 参数 $start_time 开始时间,类似"08:00"格式
     *      $end_time   结束时间,类似"08:00"格式
     *      $step       时间跨度,以分为单位,默认为45分
     *      $relax      时间间隔,以分为单位,默认为15分
     * 返回 数组
     */
    function wtime($start_time, $end_time, $step = 45, $relax = 15){
    $sar = explode(":", $start_time);
    $ear = explode(":", $end_time);
    $ss = $sar[0]*60*60 + $sar[1]*60;
    $es = $ear[0]*60*60 + $ear[1]*60;
    while($ss < $es){
    $hour = floor($ss/3600);
    $minute = $ss%3600/60;
    $ss+=$step*60;
    $hour1 = floor($ss/3600);
    $minute1 = $ss%3600/60;
    $rear[] = (strlen($hour) < 2 ? "0".$hour : $hour ).":".(strlen($minute) < 2 ? "0".$minute : $minute )."-".(strlen($hour1) < 2 ? "0".$hour1 : $hour1 ).":".(strlen($minute1) < 2 ? "0".$minute1 : $minute1 );
    $ss+=$relax*60;
    }
    return $rear;
    }/* 
     * 确定开始时间,结束时间和时间跨度,可以生成24小时之内的时间循环
     */
    print_r(wtime("08:00", "19:00", 60));
    /*
    out:
    Array
    (
        [0] => 08:00-09:00
        [1] => 09:15-10:15
        [2] => 10:30-11:30
        [3] => 11:45-12:45
        [4] => 13:00-14:00
        [5] => 14:15-15:15
        [6] => 15:30-16:30
        [7] => 16:45-17:45
        [8] => 18:00-19:00
    )
    */
    ?>
      

  4.   

    不懂$start = "08:04";
    $step = 60;
    $end = date("H:i", strtotime(date("Y-m-d ").$str)+60*$step)); echo "$start-$end";
      

  5.   

    你那个45是如何得来的?
    <?php
    $TimeFrom = '08:00';
    $TimeTo = '19:00';
    $SlotPeriod = 60;$d = date('Y-m-d ');
    $i = 0;
    do {
      $t = strtotime("$d$TimeFrom +$i minutes");
      echo date("H:i",$t)."-".date("H:45",$t)."<br>";
      $i += $SlotPeriod;
    }while($t < strtotime($d.$TimeTo));
    ?>
      

  6.   

    如果$SlotPeriod = 10;呢?还是减15吗?