سؤال

مرحبا ، أحتاج إلى حساب متوسط الوقت بين بعض فترات التاريخ.

في الواقع لدي بعض التاريخ الفاصل مثل هذا :

for ($i = 0 ; $i < count($startDate) ; $i++)
    {
          $diffTable[] = date_diff($finishDate[$i], $startDate[$i]);
          echo $diffTable[$i]->format("%Y-%M-%d %H:%i:%s");
    }

هنا هو الإخراج :

00-00-0 00:13:17
00-00-0 00:7:47
00-00-0 00:7:14
00-00-0 00:10:39

أحتاج إلى حساب متوسط الوقت بين هذه الفواصل الزمنية.هنا فقط دقيقة والثانية ، ولكن يمكن أن يكون الشهر أو السنة.

لا يمكنني العثور على طريقة جيدة لحسابها بسهولة.يمكنني ببساطة إضافة كل فاصل زمني مع تحويل مثل هذا :

sec + 60xmin + 3600xHour ...

ولهم اللعب مع مودولو ( ٪ ).

ولكن آمل أن يكون هناك طريقة أخرى ?

هل كانت مفيدة؟

المحلول

يجب أن تضرب الدقائق بـ 60 ، والساعات بـ 3600 ، إلخ.، حتى لا يتبقى سوى ثوان.من هناك من السهل حساب المتوسط.

نصائح أخرى

طيب حتى وجدت سث أفضل أنا فقط أكتب هذا :

function dateIntervalToSecond($interval)
    {
        return $interval->y     * 31556926 
                + $interval->m  * 2629743
                + $interval->d  * 6400
                + $interval->h  * 3600
                + $interval->i  * 60
                + $interval->s;
    }

انها ليست مثالية ، ولكن أفضل من لا شيء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top