【问题标题】:I want to calculate this time Laravel我想计算这个时间 Laravel
【发布时间】:2023-01-18 01:01:10
【问题描述】:

$array = [ '00:09:45', '00:50:05', '00:01:05', ]

我尝试了这个计算时间,但它不起作用。

【问题讨论】:

  • 那不是计算,它是时间的字符串表示数组...请edit your question并包含更多详细信息;抱歉,您的问题目前没有任何意义。

标签: php laravel


【解决方案1】:

我知道通过计算他的意思是加法。 (与翻译有关的细微差别)。下面是 Laravel 中的示例函数,它从数组中添加这些时间。为此,您应该使用 Carbon。

use CarbonCarbon;

function addTimes($times) {
    $totalTime = Carbon::createFromTime(0, 0, 0);
    foreach ($times as $time) {
        $time = Carbon::createFromFormat('H:i:s', $time);
        $totalTime->addSeconds($time->secondsSinceMidnight());
    }
    return $totalTime;
}

$times = [ '00:09:45', '00:50:05', '00:01:05', ];
$totalTime = addTimes($times);

echo $totalTime->format('H:i:s');

【讨论】:

    【解决方案2】:

    我相信你想要总结时间的持续时间。我们可以在一个集合中对其进行改造,并通过添加次数来减少它。

    use Carbon/Carbon;
    
    $array = collect(['12:09:45', '11:50:05', '07:01:05']);
    $total = $array->reduce(function ($time, $timeNext){
        $carbonTimeNext = new Carbon($timeNext);
        $time->addHours($carbonTimeNext->format('H'))
            ->addMinutes($carbonTimeNext->format('i'))
            ->addSeconds($carbonTimeNext->format('s'));
        return $time;
    }, new Carbon('00:00:00'));
    
    echo $total->shortAbsoluteDiffForHumans(new Carbon('00:00:00'), 6);
    
    //output: 1d 7h 55s
    

    【讨论】:

      猜你喜欢
      • 2017-03-29
      • 1970-01-01
      • 2015-08-06
      • 2015-06-01
      • 2020-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多