簡體   English   中英

Laravel:通過API顯示兩個日期之間的差異

[英]Laravel : Display the difference between the two dates by API

$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

您可以使用 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->('ym-d')

因此,在我看來,使用 datetime 進行日期計算始終是一個不錯的選擇。 在最初的問題中,使用了 strtotime。 strtotime 只返回一個有效的時間戳對象。 為了進一步計算,您必須使用日期、日期時間、碳等。

我最喜歡的日期計算是並保持碳。 https://carbon.nesbot.com/docs/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM