$job 關鍵狀態的DD
我通過 API 回傳的日期格式如下: "startTime": "20211018094702","endTime": "20211018094738"
所以我想顯示 endTime 和 startTime 之間的小時、分鐘和秒差異我嘗試了一些我知道它不起作用但我不知道如何去做的事情。預先感謝您的幫助
@foreach ($data['statuses'] as $job)
@if ($job['name'] == "************")
@php
$startTime = strtotime($job['startTime'])
@endphp
@elseif ($job['name'] == "***********")
@php
$endTime = strtotime($job['endTime']);
@endphp
{{ ($endTime - $startTime)/3600 }}
@endif
@endforeach
uj5u.com熱心網友回復:
您可以使用 DateTime 進行計算。我已經重寫了你的代碼。我不知道你到底想要什么,但你可以隨意輸出。
小提示。我不會在視圖中做這樣的計算。
@foreach ($data['statuses'] as $job)
@if ($job['name'] == "************")
@php
$startTime = $job['startTime'];
@endphp
@elseif ($job['name'] == "***********")
@php
$endTime = $job['endTime'];
// new calculation with datetime
$dateTime_1 = new DateTime($startTime);
$dateTime_2 = new DateTime( $endTime);
$interval = $dateTime_1->diff($dateTime_2);
echo $interval->format('%Y years %m months %d days %H hours %i minutes %s seconds');
@endphp
@endif
@endforeach
您可以使用 DateTime 代替 strtotime。這樣做的好處是您可以訪問 DateTime 函式。例如,diff() 或 format() 等。使用 diff 您可以輕松地在兩個 DateTime 物件之間執行計算。此外,使用格式,您可以輸出所需的格式或僅輸出某些元素,如天等$dateTimeObject->('y-m-d')。
因此,在我看來,使用 datetime 進行日期計算始終是一個不錯的選擇。在最初的問題中,使用了 strtotime。strtotime 只回傳一個有效的時間戳物件。為了進一步計算,您必須使用日期、日期時間、碳等。
我最喜歡的日期計算是并保持碳。 https://carbon.nesbot.com/docs/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/322927.html
