Yj炎翼 2019-08-10 16:44 采纳率: 100%
浏览 201
已采纳

在一定时间内时段0-7 或时段7-18 出现了多少次,并计算出每个段的秒数,如何得知。

例如 时间
1.2019-08-09 14:00:13 到 2019-08-09 21:00:13

2.判断时段0点到7点 7点到18点 在这段时间内 出现的秒数

如何精准实现,求告知思路,谢谢

  • 写回答

1条回答 默认 最新

  • Yj炎翼 2019-08-10 19:57
    关注
    /*
         * i don't know what i'm writing
         * try it maybe it will work
         * */
    public function tryIt()
        {
            $start = 0;  //开始时段
            $end = 7;  //结束时段  为0 要处理成24
            $tmp_1 = strtotime('2019-08-09 14:00:13');
            $tmp_2 = strtotime('2019-08-09 21:00:13');
            $stop = true;
            $arr2 = [];
            while($stop)
            {
                $arr2[] = date('Y-m-d H:00:00',$tmp_1);
                if( ( $tmp_1 += 3600 ) >= $tmp_2)
                {
                    $stop = false;
                }
            }
            $seconds = 0;
            foreach($arr2 as $k2 => $v2)
            {
                $v2 = strtotime($v2);
                $that = (int) date("H",$v2);
                if( $that >= $start && $that < $end )
                {
                    if($k2 == 0)
                    {
                        var_dump("开始---".$this->startTime);
                        var_dump("节点开始---".date('Y-m-d H:i:s',$v2));
                        var_dump("相差秒数---".(strtotime($this->startTime) - $v2));
                        //第一次特殊处理 因为可能不是整点开始的
                        $this_seconds =  3600 - ( strtotime($this->startTime) - $v2 );
                    }else if($k2 == (count($arr2)-1) ) {
                        //最后一个也特殊处理 因为有可能不够一小时
                        $this_seconds = strtotime($this->endTime) - $v2;
    
                    }else{
                        $this_seconds = 3600;
                    }
    
                    $seconds += $this_seconds;
    
                }
            }
    
            //so ! it's really work O(∩_∩)O
            dump($seconds);
        }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据