Welcome, Guest. Please login or register.
Did you miss your activation email?
July 09, 2008, 05:53:55 am
42749 Posts in 8091 Topics by 17932 Members
Latest Member: codder
Turk-Php.Com Forum  |  Yardım Forumları  |  PHP Yardım Forumu  |  Süre Hesaplama... « previous next »
Pages: [1] Print
Author Topic: Süre Hesaplama...  (Read 517 times)
SysAch
Yeni Kullanıcılar
*
Offline Offline

Posts: 23



View Profile WWW
Süre Hesaplama...
« on: August 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

Posts: 221



View Profile
Ynt: Süre Hesaplama...
« Reply #1 on: August 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..
Code:
<?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

Posts: 23



View Profile WWW
Ynt: Süre Hesaplama...
« Reply #2 on: August 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

Posts: 221



View Profile
Ynt: Süre Hesaplama...
« Reply #3 on: August 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
« Last Edit: August 07, 2006, 03:58:03 pm by php_class » Logged

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

Posts: 23



View Profile WWW
Ynt: Süre Hesaplama...
« Reply #4 on: August 08, 2006, 04:35:59 pm »

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

Tekrardan Saol..
Logged
Pages: [1] Print 
« previous next »
Jump to: