$job . का डीडी प्रमुख स्थितियां

एपीआई द्वारा मुझे वापस मिलने वाली तिथियों का प्रारूप निम्नलिखित है: "स्टार्टटाइम": "20211018094702", "एंडटाइम": "20211018094738"

इसलिए मैं एंडटाइम और स्टार्टटाइम के बीच घंटों, मिनटों और सेकंड में अंतर दिखाना चाहता हूं, मैंने कुछ ऐसा करने की कोशिश की है जो मुझे पता है कि यह काम नहीं करता है लेकिन मैं यह नहीं समझ सकता कि इसे कैसे किया जाए। आपकी सहायताके लिए अग्रिम में आपका शुक्रिया

@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
0
Mdi Adel 18 अक्टूबर 2021, 18:49
1
आप इसे अपने नियंत्रक में क्यों नहीं करते? दिए गए कोड के साथ वास्तव में क्या काम नहीं कर रहा है?
 – 
Nico Haase
18 अक्टूबर 2021, 19:28

1 उत्तर

सबसे बढ़िया उत्तर

आप गणना के लिए डेटटाइम का उपयोग कर सकते हैं। मैंने आपका कोड दोबारा लिखा है। मुझे नहीं पता था कि आप वास्तव में क्या चाहते थे, लेकिन आप इसे अपनी इच्छानुसार आउटपुट कर सकते हैं।

छोटा संकेत। मैं दृश्य में ऐसी गणना नहीं करूंगा।

@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


स्ट्रेटोटाइम के बजाय आप डेटटाइम का उपयोग कर सकते हैं। इसका लाभ यह है कि आपके पास डेटटाइम फ़ंक्शंस तक पहुंच है। उदाहरण के लिए, डिफ () या फॉर्मेट () आदि। डिफ के साथ आप दो डेटटाइम ऑब्जेक्ट्स के बीच आसानी से गणना कर सकते हैं। और इसके अलावा, प्रारूप के साथ आप वांछित प्रारूप या केवल कुछ तत्वों जैसे दिन आदि को आउटपुट कर सकते हैं। $dateTimeObject->('y-m-d')

इसलिए, मेरी राय में, दिनांक गणना के लिए डेटाटाइम का उपयोग करना हमेशा एक अच्छा विकल्प होता है। प्रारंभिक प्रश्न में, स्ट्रेटोटाइम का उपयोग किया गया था। स्ट्रेटोटाइम केवल एक वैध टाइमस्टैम्प ऑब्जेक्ट देता है। आगे की गणना के लिए आपको डेट, डेटटाइम, कार्बन आदि के साथ काम करना होगा।

तिथि गणना के लिए मेरा पूर्ण पसंदीदा कार्बन है और रहना। https://carbon.nesbot.com/docs/

0
Maik Lowrey 18 अक्टूबर 2021, 21:19
बढ़िया, बहुत बहुत धन्यवाद माइक लोरे!
 – 
Mdi Adel
18 अक्टूबर 2021, 20:31
कृपया अधिक विवरण साझा करें, ताकि अन्य लोग आपके उत्तर से सीख सकें। आपने क्या बदला, और क्यों?
 – 
Nico Haase
18 अक्टूबर 2021, 20:59
ज़रूर। मैंने अपना प्रश्न अपडेट किया।
 – 
Maik Lowrey
18 अक्टूबर 2021, 21:21
यदि आप अपनी समस्या हल करते हैं तो आप इसे स्वीकृत के रूप में चिह्नित कर सकते हैं :)
 – 
Maik Lowrey
18 अक्टूबर 2021, 21:38