添加两次 laravel

Add two times laravel

我有两次$first = 16 (seconds or minutes)&$second = 10 (seconds or minutes)

我想要实现的目标 - 我想像 $result = $first + $second 一样添加两次,结果以秒和分钟格式显示 喜欢

$first = 16 seconds;
$second = 2 minutes;
$result = $first + $second;  // 2 minutes, 16 seconds 

那么,我们如何在代码中做到这一点

我有这个参考代码可以得到两次的时间间隔

$in1 = explode(' ', "clock in time = 20 minutes");
$out1 = explode(' ', "clock out time = 10 minutes");
        
$start_time1 = $in1[4] . ' ' . $in1[5];
$end_time1 = $out1[4] . ' ' . $out1[5];
        
$start1 = Carbon::parse($start_time1);
$end1 = Carbon::parse($end_time1);

$dd1 = $end1->diffForHumans($start1, [
    'parts' => 2,
    'join' => ', ',
    'syntax' => CarbonInterface::DIFF_ABSOLUTE,
]);

您可以以秒为单位转换时间,进行加法运算,然后再次转换为时间。

$start = $in1[5] === 'seconds' ? $int1[4] : $int1[4] * 60;
$end = $out1[5] === 'seconds' ? $out1[4] : $out1[4] * 60; 

$totalInSeconds = (int) $start + (int) $end;

$dd1 = gmdate('i', $totalInSeconds) .' minutes, '. gmdate('s', $totalInSeconds) .' seconds';
echo $dd1;

Carbon 间隔允许您从 20 minutes10 seconds 等字符串创建一个间隔实例,这样您就可以利用它和一些日期操作来获得您需要的东西:

$in1 = explode('=', "clock in time = 20 minutes");
$out1 = explode('=', "clock out time = 10 minutes");
        
$startinterval = CarbonInterval::fromString(trim($in1[1]));
$endinterval = CarbonInterval::fromString(trim($out1[1]));
$now = CarbonImmutable::now();
$interval = $now->add($startinterval)->add($endinterval)->diffAsCarbonInterval($now);