Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Aktivasyon mailiniz gelmediyse buraya tıklayın.
19, 2008, 02:31:13 am
42875 Mesaj 8121 Konu Gönderen: 17992 Üye
Son üye: manyaq qarizma
Turk-Php.Com Forum  |  Yardım Forumları  |  PHP Yardım Forumu  |  Süre Hesaplama... « önceki sonraki »
Sayfa: [1] Yazdır
Yazan Konu: Süre Hesaplama...  (Okunma Sayısı 539 defa)
SysAch
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 23



Üyelik Bilgileri WWW
Süre Hesaplama...
« : 07, 2006, 12:52:27 am »

Arkadaşlar Site Üzerinde Arama Yaptım Ama İstediğim Gißi ßirşeyi de ßulamadım Açıkçası...

Yapmak İstediğim Şey Veri Taßanında SonHareket İsimli ßir Alan Açıp Daha Sonra O Anın Tarihine Göre ßir Süre Hesaplaması Yapmak İstiyorum. Süreyi Dakika Üzerinden Yapmam Lazım. ßir Newi Online Listeleme Yönetiminde de Kullanılaßilir ßi Kod Gißi Yani...

Tarih Formatı

Gün.Ay.Yıl Saat:Dakika:Saniye(07.08.2006 07:42:05) Cinsinden Alıp ßunu Karşılaştırma Sonucunda Son Hareketten ßu Yana Kaç Dakika Geçtiğini Hesaplamak İstiyorum...

Yardımlarınız İçin Şimdiden Teşekkür Ederim...
Logged
php_class
PHP Stajyeri
**
Offline Offline

Mesaj Sayısı: 221



Üyelik Bilgileri
Ynt: Süre Hesaplama...
« Yanıtla #1 : 07, 2006, 10:05:36 am »

tablomuzu oluşturuyoruz..
<?php
mysql_query("
CREATE TABLE `tablo` (
  `id` int(1) NOT NULL auto_increment,
  `sonhareket` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
");
?>
tarih aralığı heasplıyoruz..
Kod:
<?php
function datediff($interval$date1$date2) {
$seconds strtotime($date2) - strtotime($date1);
$date1=date("Y-m-d",strtotime($date1));
$date2=date("Y-m-d",strtotime($date2));
switch(
$interval) {
case 
"y":
list(
$year1$month1$day1) = split('-'$date1);
list(
$year2$month2$day2) = split('-'$date2);
$time1 = (date('H',$date1)*3600) + (date('i',$date1)*60) + (date('s',$date1));
$time2 = (date('H',$date2)*3600) + (date('i',$date2)*60) + (date('s',$date2));
$diff $year2 $year1;
if(
$month1 $month2) {
$diff -= 1;
} elseif(
$month1 == $month2) {
if(
$day1 $day2) {
$diff -= 1;
} elseif(
$day1 == $day2) {
if(
$time1 $time2) {
$diff -= 1;
}}}
break;
case 
"m":
list(
$year1$month1$day1) = explode('-'$date1);
list(
$year2$month2$day2) = explode('-',$date2);
$time1 = (date('H',$date1)*3600) + (date('i',$date1)*60) + (date('s',$date1));
$time2 = (date('H',$date2)*3600) + (date('i',$date2)*60) + (date('s',$date2));
$diff = ($year2 12 $month2) - ($year1 12 $month1);
if(
$day1 $day2) {
$diff -= 1;
} elseif(
$day1 == $day2) {
if(
$time1 $time2) {
$diff -= 1;
}}
break;
case 
"w":
$diff floor($seconds 604800);
break;
case 
"d":
$diff floor($seconds 86400);
break;
case 
"h":
$diff floor($seconds 3600);
break;      
case 
"i":
$diff floor($seconds 60);
break;      
case 
"s":
$diff $seconds;
break;      
}
if (
$diff<0){
$diff=0-$diff;
}
return 
$diff;
}
?>

buradada basıyoruz
<?php
$dateA = date("Y-m-d");
$dateB = mysql_result(mysql_query("SELECT * FROM tablo"),0,"sonhareket");
$kalan = datediff("i",$dateA, $dateB);
if($kalan == 0){ echo "Bugün"; }else{ echo $kalan; ?> G&uuml;n <?php } ?>

umarım işine yarar  laugh
Logged

I CRAZY ABOUT <? p <> h <> p ?>
SysAch
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 23



Üyelik Bilgileri WWW
Ynt: Süre Hesaplama...
« Yanıtla #2 : 07, 2006, 03:04:21 pm »

İlgin İçin Teşekkür Ederim php_class,

Bu Kodda Gün Hesaplaması Yapıor Olması Lazım. ßana Olarak Dakika Hesap Yapması Lazım

Yani
Kalan = datediff('i',$dateA,$dateB);


Dendiği Zaman Kalan Olarak Sonuc Gün Değil Dakika Olacak.

Yani Kana 30 Dakika İse ßende Online Süresini 15 Dakikadan Hesaplayıp 15'den Fazla İse Offline Az İse Online Olarak Gösterecem.


Umarım Ne Demek İstediğimi ßu Sefer Tam Olarak Anlataßilmişimdir :S
Logged
php_class
PHP Stajyeri
**
Offline Offline

Mesaj Sayısı: 221



Üyelik Bilgileri
Ynt: Süre Hesaplama...
« Yanıtla #3 : 07, 2006, 03:55:36 pm »

anladım kardeş benim verdiğim kodda her formatta yazabilirsin
datediff('i',$dateA,$dateB);
yukarıdaki kodda i yerine teker teker şunları dene s, i, h, d, w, m, y
ama dakika cinsinden i olması lazım eminmisin hata olduğuna

eğer bununla çözemesen
<?php
$sure = 10; //dk
$sayi = mysql_query("SELECT COUNT(*) FROM tablo WHERE zaman >= DATE_SUB(NOW(), INTERVAL $sure MINUTE)");
list($online_sayisi) = mysql_fetch_row($sayi);
echo "Online üye : $online_sayisi
($sure dk için)";
?>
bunu dene ben bunu kullanıyorum çalışıyor
« Son Düzenleme: 07, 2006, 03:58:03 pm Gönderen: php_class » Logged

I CRAZY ABOUT <? p <> h <> p ?>
SysAch
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 23



Üyelik Bilgileri WWW
Ynt: Süre Hesaplama...
« Yanıtla #4 : 08, 2006, 04:35:59 pm »

Çok Saol Kardeş.
Şuanda Deniyemiorum Ama Muhakkak Çalışıordur..

Tekrardan Saol..
Logged
Sayfa: [1] Yazdır 
« önceki sonraki »
Gitmek istediğiniz yer:  


Turk-Php.Com Forum | SMF Forum Software © 2005, Simple Machines LLC. All Rights Reserved.