Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Php ille Belirli Tarihin Bu Güne Kaç Gün Kaldığı ve Kaç Gün Geçtiği ?

Merhaba arkadaşlar ilk php scriptimi yazıyorum ama bi sıkıntım var veritabanımda 2011-09-18 gibi bir tarihim var istediğim şu;

veritabanında kayıtlı tarihin, içinde bulunduğumuz güne kaç gün kaldığı veya kaç gün geçtiği
yani eğer veritabanındaki tarih bu günden küçükse +bilmemkaçgün büyükse -bilmemkaçgün demem lazım yardımcı olan arkadaşlara şimdiden teşekkür ediyorum...
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • UmutYerebakmaz adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    11 cevap - 0 soru
    <?php 
    function tarihFark($tarih1,$tarih2,$ayrac)
    {
    list($y1,$a1,$g1) = explode($ayrac,$tarih1);
    list($y2,$a2,$g2) = explode($ayrac,$tarih2);
    $t1_timestamp = mktime('0','0','0',$a1,$g1,$y1);
    $t2_timestamp = mktime('0','0','0',$a2,$g2,$y2);
    if ($t1_timestamp > $t2_timestamp)
    {
    $result = ($t1_timestamp - $t2_timestamp) / 86400;
    }
    elseif ($t2_timestamp > $t1_timestamp)
    {
    $result = ($t2_timestamp - $t1_timestamp) / 86400;
    }
    return $result;
    }
    
    $bugun = date('Y-m-d');
    $tarih = "2011-09-28";
    $gun = tarihFark($tarih,$bugun,'-');
    
    if ($bugun == $tarih ) 
            echo "Üyeliğiniz bugün sona eriyor."; 
    elseif ($bugun > $tarih )
            echo "Üyeliğiniz $gun gün önce (şu tarihte) sona ermiştir.";
    else 
            echo "Üyeliğiniz $gun gün sonra (şu tarihte) sona erecektir.";
    
    ?>
    

Cevaplar

  • emoty_88 adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    26 cevap - 17 soru
    öncelikle veri tabanından aldığın zamanı global zaman tipine çevirmen gerek yani 01.01.1970 den o tarihe kadar kaç milisaniye geçmiş se o sayı sonra şimdiki zamanın aynı tipte verisini alıp karşılaştırabilirsin

    php manual den mktime ı biraz kurcala çok rahat üstesinden gelirsin

    http://php.net/manual/tr/function.mktime.php
    • Yunus adlı üyenin fotoğrafı Yunus
      merhaba php de çok yeniyim ilk scriptim biraz bu konu hakkında kod olarak yardımcı olabilirmisiniz...
      12 yıl önce yazılmış
  • 1
    xuma adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    171 cevap - 1 soru
    http://tutorialzine.com/2009/09/making-our-own-twitter-timeline/ adresinde bulabileceğin anlatımda bulunan fonksiyonu kullanabilirsin.
    function relativeTime($dt,$precision=2)
    {
    	$times=array(	365*24*60*60	=> "year",
    				30*24*60*60		=> "month",
    				7*24*60*60		=> "week",
    				24*60*60		=> "day",
    				60*60			=> "hour",
    				60				=> "minute",
    				1				=> "second");
    
    	$passed=time()-$dt;
    
    	if($passed<5)
    	{
    		$output='less than 5 seconds ago';
    	}
    	else
    	{
    		$output=array();
    		$exit=0;
    		foreach($times as $period=>$name)
    		{
    			if($exit>=$precision || ($exit>0 && $period<60)) 	break;
    			$result = floor($passed/$period);
    
    			if($result>0)
    			{
    				$output[]=$result.' '.$name.($result==1?'':'s');
    				$passed-=$result*$period;
    				$exit++;
    			}
    
    			else if($exit>0) $exit++;
    
    		}
    		$output=implode(' and ',$output).' ago';
    	}
    
    	return $output;
    }
    
    • Yunus adlı üyenin fotoğrafı Yunus
      istediğim tam olarak böyle birşey değil, sabit bir tarihi bu gün üzerinden kaç gün geçmiş veya kaç gün var onu hesaplamak istiyorum :S
      12 yıl önce yazılmış
    • xuma adlı üyenin fotoğrafı xuma
      Yukarıdakini örnekten yararlanman için vermiştim buda düzenlenmiş hali.
      function sureHesapla($zaman,$suan,$ayrinti=2){
      			$tarihler=array(365*24*60*60	=> "yil",
      						30*24*60*60		=> "ay",
      						7*24*60*60		=> "hafta",
      						24*60*60		=> "gun",
      						60*60			=> "saat",
      						60				=> "dakika",
      						1				=> "saniye");
      		if($suan>$zaman){ 
      			$gecen=$suan-$zaman;
      			if($gecen<5){$cikti='5 Saniyeden daha az sure once.';}
      		}else{
      			$gecen=$zaman-$suan;
      			if($gecen<5){ $cikti='5 Saniyeden daha az sure gecmis.';}
      		}
      		$cikti=array();
      		$cikis=0;
      		if($gecen>5){
      			foreach($tarihler as $sayi=>$kelime){
      			if($cikis>=$ayrinti || ($cikis<0 && $sayi<60)) break;
      			// ara sureyi bulalim
      			$arasure=floor($gecen/$sayi);
      			if($arasure>0){
      				$cikti[]=$arasure.' '.$kelime;
      				$gecen-=$arasure*$sayi;
      				$cikis++;
      			}else if($cikis>0) $cikis++;
      			}
      			$cikti=implode(' ve ',$cikti).' once';
      
      		}
      		
      			
      		return $cikti;
      	
      	}
      	$belirliGun = strtotime('2011-09-20 17:00:43');
      	$suan=strtotime(date("j-n-Y H:i:s"));
      	
      	echo sureHesapla($belirliGun,$suan,5);
      12 yıl önce yazılmış
  • tapsin adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    147 cevap - 0 soru
    Bunu SQL üzerinde bitirmen daha hayırlı.