当考虑到多次时间计算时,将时间加在一起可能会很复杂,将数组添加到混合中会更加复杂! 

下面这个小类可以使多次相加,不管有多少。

class:

class times_counter {

    private $hou = 0;
    private $min = 0;
    private $sec = 0;
    private $totaltime = '00:00:00';

    public function __construct($times){

        if(is_array($times)){

            $length = sizeof($times);

            for($x=0; $x <= $length; $x++){
                    $split = explode(":", @$times[$x]);
                    $this->hou += @$split[0];
                    $this->min += @$split[1];
                    $this->sec += @$split[2];
            }

            $seconds = $this->sec % 60;
            $minutes = $this->sec / 60;
            $minutes = (integer)$minutes;
            $minutes += $this->min;
            $hours = $minutes / 60;
            $minutes = $minutes % 60;
            $hours = (integer)$hours;
            $hours += $this->hou % 24;
            $this->totaltime = $hours.":".$minutes.":".$seconds;
        }
    }

    public function get_total_time(){
        return $this->totaltime;
    }

}

使用示例:

$times = array(
    '00:30:00',
    '01:15:00',
    '06:40:20',
    '02:05:16'
);

$counter = new times_counter($times);
echo $counter->get_total_time();

//outputs:
10:30:36

这通过向构造函数传递一个时间数组来工作,然后只要传递的项目是一个数组,就会执行一个 for 循环以从数组中的所有时间获取小时、分钟和秒。时间计算以 60 秒和分钟为单位进行适当转换,最后以 24 小时为单位进行转换。

一个非常方便的课程,用于消除时间计算和“工作”的痛苦。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。