• 14-06-2016, 21:08:09
    #1
    $suan = time(); 
    $sontarih = (strtotime("next monday"));
    $fark = $sontarih - $suan;

    yaparak şimdiki zaman ile kalan saati hesaplıyorum


    echo $saat = date("H",$fark);
    yaptığım zaman o günün bitmesine kalan süreyi veriyor bana

    toplam 24 saatin üstünde çıkmıyor yani,

    sadece saat dakika saniye cinsinden nasıl hesaplama yaparım


    78 saat 5 dakika 5 saniye kaldı vb gibi
  • 14-06-2016, 22:10:59
    #2
    darkymarky adlı üyeden alıntı: mesajı görüntüle
    $suan = time(); 
    $sontarih = (strtotime("next monday"));
    $fark = $sontarih - $suan;

    yaparak şimdiki zaman ile kalan saati hesaplıyorum


    echo $saat = date("H",$fark);
    yaptığım zaman o günün bitmesine kalan süreyi veriyor bana

    toplam 24 saatin üstünde çıkmıyor yani,

    sadece saat dakika saniye cinsinden nasıl hesaplama yaparım


    78 saat 5 dakika 5 saniye kaldı vb gibi

    Merhabalar,

    date_default_timezone_set('Europe/Istanbul');
    $today = strtotime('today 14:00');
    $tomorrow = strtotime('tomorrow 14:00');
    $now = time();
    $timeLeft = ($now > $today ? $tomorrow : $today) - $now;
    printf("Kalan Süre: %s\n", gmdate("H:i:s", $timeLeft));

    Dener misiniz hocam.
  • 14-06-2016, 22:37:35
    #3
    öncelikle teşekkürler gmdate komutuda gün cinsinden hesaplatıyor saate çevirmedi
    denedigimde 5 gün sonrası için 5 saat kaldıgını gosteriyor.


    birde timezone set tanımlı olmasına rağmen gece 2 de sıfırlanıyor
  • 15-06-2016, 03:58:57
    #4
    darkymarky adlı üyeden alıntı: mesajı görüntüle
    öncelikle teşekkürler gmdate komutuda gün cinsinden hesaplatıyor saate çevirmedi
    denedigimde 5 gün sonrası için 5 saat kaldıgını gosteriyor.


    birde timezone set tanımlı olmasına rağmen gece 2 de sıfırlanıyor
    Aşağıdaki fonksiyonu dener misiniz ?

    function dateDiff($time1, $time2, $precision = 6) {
    	if (!is_int($time1)) {
    	  $time1 = strtotime($time1);
    	}
    	if (!is_int($time2)) {
    	  $time2 = strtotime($time2);
    	}
    
    	if ($time1 > $time2) {
    	  $ttime = $time1;
    	  $time1 = $time2;
    	  $time2 = $ttime;
    	}
    
    	//$intervals = array('year','month','day','hour','minute','second');
    	$intervals = array('hour','minute','second');
    	$intervals_tr = array('saat','dakika','saniye');
    	$diffs = array();
    
    	foreach ($intervals as $interval) {
    	  $ttime = strtotime('+1 ' . $interval, $time1);
    	  $add = 1;
    	  $looped = 0;
    	  while ($time2 >= $ttime) {
    		$add++;
    		$ttime = strtotime("+" . $add . " " . $interval, $time1);
    		$looped++;
    	  }
    
    	  $time1 = strtotime("+" . $looped . " " . $interval, $time1);
    	  $diffs[$interval] = $looped;
    	}
    
    	$count = 0;
    	$times = array();
    	foreach ($diffs as $interval => $value) {
    	  if ($count >= $precision) {
    		break;
    	  }
    	  if ($value > 0) {
    		if ($value != 1) {
    			//$interval .= "s";
    		}
    		
    		$interval_tr_text = str_replace($intervals, $intervals_tr, $interval);
    		
    		$times[] = $value . " " . $interval_tr_text;
    		$count++;
    	  }
    	}
    
    	return implode(", ", $times);
    }
    
    echo dateDiff("now", "next monday");
    Çıktı:

    Alıntı
    116 saat, 1 dakika, 40 saniye