• 23-09-2013, 17:56:26
    #1
    Merhaba Arkadaşlar,

    Bir toplanmış sürenin günlük ortalaması almam gerekiyor nasıl yapabilirm acaba?

    örnek;
    <?
    $toplam_süre = "00:17:34"; // saat : dakika : saniye
    $toplam_gun_sayisi = "17";
    $gunluk_ortalama_süre = $toplam_süre / $toplam_gun_sayisi; // Yani -> 00:17:34 / 17 = 00:01:02 günlük ortalama süre.
    ?>
  • 23-09-2013, 18:04:38
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Mantığını mı yazayım istersin php sini mi ?
  • 23-09-2013, 18:05:45
    #3
    ata350 adlı üyeden alıntı: mesajı görüntüle
    Mantığını mı yazayım istersin php sini mi ?
    phpsini yazabilirsen sevinirim
  • 23-09-2013, 18:22:00
    #4
    kafa bazen duruyor

    <?
    $toplam_sure = "00:17:34"; // saat : dakika : saniye
    $toplam_gun_sayisi = "17";
    $gunluk_ortalama_sure = str_replace(":", "", $toplam_sure) / $toplam_gun_sayisi; // Yani -> 00:17:34 / 17 = 00:01:02 günlük ortalama süre.
    $say=strlen($gunluk_ortalama_sure);
    $cikar=6-$say;
    for ($i = 1; $i <= $cikar; $i++) { $sifir.="0"; }
    $deger=$sifir.$gunluk_ortalama_sure;
    echo substr($deger, 0,2).":".substr($deger, 2,2).":".substr($deger, 4,2);
    ?>

    // çıktı 00:01:02
  • 23-09-2013, 18:30:05
    #5
    Çok çok ilkel bir kod oldu :P Birsürü function vardır bunu kolay yapacak ama bu da aynısını yapar ve araştırmak istemedim açıkçası. İşini görürse ne mutlu. Yazdırmak istemezsen echoları silersin. Virgülleri önemsemediği için aşağı yuvarlamış olur. Kolay gelsin.

    <?php
    
    $sure = "01:24:34";
    $gun  = 18;
    $uzunluk = array( 1=> "0", 2=> "00", 3=> "000", 4=> "0000", 5=> "00000", 6=> "000000" );
    $sure = str_replace(":","",$sure);
    $ortalama = $sure / 17;
    $ortalama = explode(".",$ortalama);
    $ortalama = $ortalama[0];
    $uzunlugu = 6 - strlen($ortalama);
    $ortalama = $uzunluk[$uzunlugu].$ortalama;
    $saat = substr($ortalama,0,2);
    echo $saat.":";
    $dakika = substr ( $ortalama,2,2);
    echo $dakika.":";
    $saniye = substr ( $ortalama,4,2);
    echo $saniye;
    
    $tamtarih = $saat.":".$dakika.":".$saniye;
    
    ?>
  • 23-09-2013, 18:59:10
    #6
    Kod 1:
    Alıntı
    function hms2sec ($hms) {
    list($h, $m, $s) = explode (":", $hms);
    $seconds = 0;
    $seconds += (intval($h) * 3600);
    $seconds += (intval($m) * 60);
    $seconds += (intval($s));
    return $seconds;
    }

    Kod 2:
    Alıntı
    $h_m_s = "00:10:00";
    echo strtotime("January 1, 1970 $h_m_s");
    http://i.justrealized.com/2009/how-t...econds-in-php/

    http://snipplr.com/view/16089/



    Daha sonra gün sayısına böl

    http://php.net/manual/en/function.gmdate.php

    bunu uygula.

    Hazır Kodu:

    $zaman= '00:10:00';
    $gun=19;
    $toplamSaniye = strtotime("January 1, 1970 $zaman");
    $saniye=$toplamSaniye/$gun;
    $kalan= gmdate("H:i:s", $saniye);
    echo $kalan;
  • 24-09-2013, 11:06:31
    #7
    Herkese teşekkür ederim. @Eygun arkadaşın paylaştığı şekilde çözdüm.

    function hms2sec ($hms) {
    	list($h, $m, $s) = explode (":", $hms);
    	$seconds = 0;
    	$seconds += (intval($h) * 3600);
    	$seconds += (intval($m) * 60);
    	$seconds += (intval($s));
    	return $seconds;
    }
    $zaman= '17:17:34';
    $gun=17;
    $toplamSaniye = hms2sec($zaman);
    $saniye= $toplamSaniye/$gun;
    $kalan= gmdate("H:i:s", $saniye);
    echo $kalan;