ademd adlı üyeden alıntı
ne istediğini anlamadım amacın ortalama yanıt süresini mi bulmak yoksa son cevaptan aradan geçen süreyi mi bulmak ? ikisi içinde cevabınla birlikte mysql tablondaki tarih kayıt şeklini ve sütun isimlerini yaz bir bakayım
düşüncen için çok teşekkür ederim hocam fakat sorunu çözdüm.
digi dükkan adlı üyeden alıntı
Buradaki makalelerden faydalanarak iki tarih arasındaki farkı bulun. Yani size göre uyarlarsak, cevap verilen tarihten soru sorulan tarihi çıkartın. Daha sonra bu farkı veritabanında ayrı bir yere kaydedin ve son olarak da bu zaman farklarının tamamının ortalamasını alın.
Paylaştığım bağlantıda Zaman farkını hesaplamak bölümünü incelerseniz, cevap verilen tarih ile sorunun sorulduğu tarihin farkını bulabilirsiniz. Geriye kalan tek şey de veritabanına bu farkı kaydedip, tüm farkların ortalamasını almak.
çok teşekkürler hocam. sayende biraz düşünüp üzerine bir şeyler katarak çözümü buldum. eğer olurda yapmak isteyen arkadaşlar olursa kodları paylaştım.
bu aşağıdakiler fonksiyonlarımız. iki tane fonksiyon bulunmakta. biri girilen array değerlerin ortalamasını alıyor, diyeri alınan ortalamayı zamana göre çevirip ortalama yanıt süresini veriyor.
function ortalama($array){
$toplam = 0;
$sayi = count($array);
foreach($array as $ort){
if(is_numeric($ort)){
$toplam += $ort;
// $toplam = $toplam + $ort;
}else{
$sayi--;
}
}
if($sayi){
$islem = $toplam / $sayi;
return $islem;
}else{
return "NaN";
}
}
function aralik($zaman ){
$zaman_farki = $zaman;
$saniye = $zaman_farki;
$dakika = round($zaman_farki/60);
$saat = round($zaman_farki/3600);
$gun = round($zaman_farki/86400);
$hafta = round($zaman_farki/604800);
$ay = round($zaman_farki/2419200);
$yil = round($zaman_farki/29030400);
if( $saniye < 60 ){
return $saniye.' Saniye';
} else if ( $dakika < 60 ){
return $dakika.' Dakika';
} else if ( $saat < 24 ){
return $saat.' Saat';
} else if ( $gun < 7 ){
return $gun.' Gün';
} else if ( $hafta < 4 ){
return $hafta.' Hafta';
} else if ( $ay < 12 ){
return $ay.' Ay';
} else {
return $yil.' Yıl';
}
}
şimdi diyelim veritabanımızda soru - cevap şeklinde tüm kayıtlarının tarih ve saatlerini tutuyoruz diyelim.
php ile mysql den foreach döngüsü ile döndürüp
$imtarih[] = strtotime($ilan_mesaj_->tarih.' '.$ilan_mesaj_->saat) - strtotime($karsi_tarih.' '.$karsi_saat);
her iki soru cevabın tarih saatini alıp strtotime() fonksiyonu ile çevirdim.
$ortalama_al = ortalama($imtarih);
$saat_ortalama = aralik($ortalama_al);
foreach daki döngü array ile kaydedildikten sonra yukarıdan gördüğünüz gibi önce bunların ortalamasını aldım daha sonra aralik fonksiyonuna sokarak ilgili zamanı öğrenmiş oldum.
çok teşekkürler.