adding two time values of similar formats using php

前端 未结 7 861
轮回少年
轮回少年 2020-12-03 11:41

i have two time values as give below

$time  = 06:58:00;
$time2 = 00:40:00;

I am doing this for calculating the appointments and available

7条回答
  •  执笔经年
    2020-12-03 12:20

    Anudeep's solution was great for my use case, but I needed to be able to add negative times as well. Here's a slightly edited version of his code to take and return negative time strings ("-01:01:01" for example):

    public static function sum_the_times($time1, $time2)
    {
        $times = array($time1, $time2);
        $seconds = 0;
        $negative = false;
        foreach ($times as $time) {
            list($hour,$minute,$second) = explode(':', $time);
            if(substr($hour,0,1) == '-'){
                $seconds -= substr($hour,1)*3600;
                $seconds -= $minute*60;
                $seconds -= $second;
            } else {
                $seconds += $hour*3600;
                $seconds += $minute*60;
                $seconds += $second;
            }
        }
        if (substr($seconds, 0, 1) == '-') {
            $negative = true;
            $seconds = ($seconds * -1);
        }
        $hours = floor($seconds/3600);
        $seconds -= $hours*3600;
        $minutes  = floor($seconds/60);
        $seconds -= $minutes*60;
        if ($seconds < 9) {
            $seconds = "0".$seconds;
        }
        if ($minutes < 9) {
            $minutes = "0".$minutes;
        }
        if ($hours < 9) {
            $hours = "0".$hours;
        }
        return ($negative ? "-" : "")."{$hours}:{$minutes}:{$seconds}";
    }
    

提交回复
热议问题