v2.5.1
Giriş yap

Kalan Zamanı Bulma

aydinkeskin
272 defa görüntülendi ve 1 kişi tarafından değerlendirildi

ADET PAKET VAR YILLIK

paketi alırken sql e bugün aldığını farz edersek
2022-01-08 15:15:15 diye kaydediyorum
$date = date(d-m-Y H:i:s);
ile bugünkü zamanı alıyorum
sonra bunlar zaman damgasına çeviriyorum

<?php
function Sure($zaman,$ayrinti = 2){
	$date = date("Y-m-d H:i:s");
	$artiyil = date($zaman,strtotime("+1 year"));
	$paketDamga = strtotime($artiyil);
	$suanDamga = strtotime($date);
	
	$ciktiDamga = $paketDamga - $suanDamga; // alım zamanını suanki zamandan çıkarıyorum.
	
		// yuvurlamaları yapıyorum
		$dakika = round($ciktiDamga/60);
		$saat = round($ciktiDamga/3600);
		$gun = round($ciktiDamga/86400); 
		$hafta = round($ciktiDamga/604800); 
		$ay = round($ciktiDamga/2419200); 
		$yil = round($ciktiDamga/29030400); 
		
	if($ayrinti == 1){ 
		return $yil . " Yıl Kaldı";
	}elseif($ayrinti == 2){
		return $yil." Yıl ".$ay." Ay Kaldı";
	}elseif($ayrinti == 3){
		return $yil." Yıl ".$ay." Ay ".$hafta." Hafta Kaldı";
	}elseif($ayrinti == 4){
		return $yil." Yıl ".$ay." Ay ".$hafta." Hafta ".$gun." Gün Kaldı";
	}elseif($ayrinti == 5){
		return $yil." Yıl ".$ay." Ay ".$hafta." Hafta ".$gun." Gün ".$saat." Saat Kaldı";
	}elseif($ayrinti == 6){
		return $yil." Yıl ".$ay." Ay ".$hafta." Hafta ".$gun." Gün ".$saat." Saat ".$dakika." Dakika Kaldı";
	}
	
}
$zaman = "2022-01-08 15:15:15";
echo Sure ($zaman,5);	

// çıktısı : 1 Yıl 13 Ay 52 Hafta 365 Gün 8760 Saat Kaldı


?>

bunun çıktısı 1 yıl 0 ay 0 hafta 0 gün 0 saat Kaldı

olmasını istiyorum o arada yapacağım işlemi kestiremedim bir türlü kestiremedim

o aradaki işlemi nasıl yapmam gerekiyor. istediğim gibi sonuç alabilmem için

Cevap yaz
Cevaplar (8)
ibrahimali
289 gün önce

Sanırım istediğin şu.


<?php

function time_left($date) {
    $date2 = date("Y-m-d H:i:s");
    $diff = abs(strtotime($date2) - strtotime($date));
    
    $years = floor($diff / (365*60*60*24));
    $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
    $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
    $hours = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24-$days*60*60*24)/ (60*60));
    $minutes = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24-$days*60*60*24-$hours*60*60)/60);
    $seconds = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24-$days*60*60*24-$hours*60*60-$minutes*60));
    
    
    echo "$years years $months months $days days $hours hours $minutes minutes $seconds seconds";
}

time_left("2022-01-9 15:15:15");

?>

aydinkeskin
289 gün önce

:) aynen sen söyleyince farkettim :)

ibrahimali
289 gün önce

abs() -ni silmemişsindir sen :)
Buyur :)

aydinkeskin
289 gün önce

alla alla onu bende yaptım bende çalışmadı demek yanlış bişi yapmışım

ellerine , gönlüne sağlık kardeşim.

ibrahimali
289 gün önce

Böyle dene

<?php

function time_left($date) {
    $date2 = date("Y-m-d H:i:s");
    $diff = strtotime($date) - strtotime($date2);
    
    if($diff<0) {
        echo " Coktan gecti be kardeşim...";
    }
    else {
        $years = floor($diff / (365*60*60*24));
        $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
        $weeks = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (7*60*60*24));
        $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24-$weeks*7*60*60*24)/ (60*60*24));
        $hours = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24-$weeks*7*60*60*24-$days*60*60*24)/ (60*60));
        $minutes = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24-$weeks*7*60*60*24-$days*60*60*24-$hours*60*60)/60);
        $seconds = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24-$weeks*7*60*60*24-$days*60*60*24-$hours*60*60-$minutes*60));
        
        $_years= ($years>0?$years." years ":""); //yil varsa goster
        $_months =($months>0?$months." months ":""); //ay varsa goster
        $_weeks = ($weeks>0?$weeks." weeks ":""); //hafta varsa goster
        $_days =($days>0?$days." days ":""); //gun varsa goster
        $_hours = ($hours>0?$hours." hours ":"");//saat varsa goster
        $_minutes = ($minutes>0?$minutes." minutes ":""); //dakika varsa goster
        $_seconds =($seconds>0?$seconds." seconds ":""); //saniye varsa goster
        echo $_years.$_months.$_weeks.$_days.$_hours.$_minutes.$_seconds;
    }
    

    
}

time_left("2021-01-9 15:15:15");

?>
aydinkeskin
289 gün önce

çok yordum seni kardeşim fakat

tarih ilerde ise sorun yok yazıyor ama tarih geçtiği zaman da hiç bişi yazmaması gerekiyor
atıyorum tarih bugün 2021-01-09 15:15:!5
paket geçtiği 1 gün odlu ise : 2021-01-08 15:15:15

1 gün kaldı diye sonuç vermemesi gerekiyor biraz denemeler yaptım ama olmadı

ibrahimali
289 gün önce

Buyur. Kalsın bende kullanırım :)

<?php

function time_left($date) {
    $date2 = date("Y-m-d H:i:s");
    $diff = abs(strtotime($date2) - strtotime($date));
    
    $years = floor($diff / (365*60*60*24));
    $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
    $weeks = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (7*60*60*24));
    $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24-$weeks*7*60*60*24)/ (60*60*24));
    $hours = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24-$weeks*7*60*60*24-$days*60*60*24)/ (60*60));
    $minutes = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24-$weeks*7*60*60*24-$days*60*60*24-$hours*60*60)/60);
    $seconds = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24-$weeks*7*60*60*24-$days*60*60*24-$hours*60*60-$minutes*60));
    
    $_years= ($years>0?$years." years ":""); //yil varsa goster
    $_months =($months>0?$months." months ":""); //ay varsa goster
    $_weeks = ($weeks>0?$weeks." weeks ":""); //hafta varsa goster
    $_days =($days>0?$days." days ":""); //gun varsa goster
    $_hours = ($hours>0?$hours." hours ":"");//saat varsa goster
    $_minutes = ($minutes>0?$minutes." minutes ":""); //dakika varsa goster
    $_seconds =($seconds>0?$seconds." seconds ":""); //saniye varsa goster
    

    
   echo $_years.$_months.$_weeks.$_days.$_hours.$_minutes.$_seconds;
}

time_left("2022-01-19 15:15:15");

?>
aydinkeskin
289 gün önce

aynen kardeşim teşekkür ederim

hafta da olaydı güzel olurdu : )

$hafta = floor(($diff - $yil * 365*60*60*24 - $ay*30*60*60*24) / (60*60*24) / (7) );


böyle yaptım hafta için ama çalışıyor fakat sadece hafta varken hem haftayı hem günü eşit yazıyor

aradaki fark 1 hafta 1 gün ise

sonuc : 1 hafta 15 gün yazıyor.