2011-06-24 19 views

cevap

30

:

echo date("H:i:s",$endtime-$starttime); 

$endtime-$starttime saniyede süresini verir, date çıkışını biçimlendirmek için kullanılır. veri tabanına kaydetme ve okuma gibi bir problem senin problemin değil, bu yüzden benim örneğimde bıraktım. Bu çalışmayı elde etmek için microtime(true)'u kullanmanız gerekeceğini unutmayın, microtime()'un alanla ayrılmış çıktısı ile kolayca hesaplama yapamazsınız.

DÜZENLEME: Eğer de kendi başınıza tüm hesaplama yapabilir. sadece temel matematik Bu gibi:

$duration = $endtime-$starttime; 
$hours = (int)($duration/60/60); 
$minutes = (int)($duration/60)-$hours*60; 
$seconds = (int)$duration-$hours*60*60-$minutes*60; 
+4

İlk:

microtime mikrosaniye zaman bir ölçü dönmek ve temelde mikrosaniye dönüştürülebilir php işlevinin adıdır Örnek her zaman işe yaramaz. microtime, açıkça 1/1/70 00:00:00 UTC'de başlayan bir unix zaman damgası döndürür. Eğer $ endtime - $ starttime' 24 saatten büyükse, döndürülen fark zaman damgası 2/1/70 01:00:00 UTC'yi temsil eder (tam olarak 25 saat olduğu varsayılır). Bunu 'H: i: s' biçiminde biçimlendirmek bir saat gibi görünen 01: 00: 00 'dır. –

+2

Ayrıca, ikinci örneğinizde 'microtime()', 'timestamp microseconds 'dizesini döndürdüğüne işaret etmeye değer olabilir - bu konuda matematik yapamazsınız, bu yüzden' microtime (true) 'işlevini kullanmanız gerekir Bir şamandıra –

+1

oh olsun, hint adam için teşekkürler, bunu düşünmedim, ama haklısın: eğer süre 24 saatten fazla olabilirse, ilk çözümüm işe yaramazdı. "d" (ve "m" ve "Y" ise ") gün sayısı da çıktısı almak veya hesaplamayı elle yapmak için (ikinci örneğim gösteriliyor gibi) – oezi

3

Bir zaman A ve zaman B varsa, saniyeler içinde bu iki mutlak saatler arasında saniye sonra sayıdır:

B - A 

İsterseniz Bu sayıyı biçimlendirmek için onu güzelleştirmek için date'u kullanabilirsiniz.

12

Saniyede mi yoksa saat veya dakika mı?

 

    1 milliseconds = 1,000 microseconds 
    1 second  = 1,000,000 microseconds 
    1 minute  = 60,000,000 microseconds 
    1 hour   = 3,600,000,000 microseconds 


    or 


    1 microsecond = 0.001 milliseconds 
    1 microsecond = 0.000001 seconds 
    1 microsecond = 0.0000000166666667 minutes 
    1 microsecond = 0.000000000277777778 hours 

3
function formatPeriod($endtime, $starttime) 
    { 

    $duration = $endtime - $starttime; 

    $hours = (int) ($duration/60/60); 

    $minutes = (int) ($duration/60) - $hours * 60; 

    $seconds = (int) $duration - $hours * 60 * 60 - $minutes * 60; 

    return ($hours == 0 ? "00":$hours) . ":" . ($minutes == 0 ? "00":($minutes < 10? "0".$minutes:$minutes)) . ":" . ($seconds == 0 ? "00":($seconds < 10? "0".$seconds:$seconds)); 
} 
0
.heading { 
    color: #666; 
    border-bottom: 1px dotted #ddd; 
    font-weight: normal; 
} 
.intro { 
    color: #666; 
    background: #f5f5f5; 
    border: 1px solid #ccc; 
    border-radius: 2px; 
    padding: 10px; 
} 
<h1 class="heading">Someo Coole!</h1> 
<p class="intro">I am a very little boy! Thanks for letting me do some stuff here and around here!</p> 
<p>Sorry for taking place for none!</p> 
function formatPeriod($endtime, $starttime) 
{ 
$duration = $endtime - $starttime; 

$hours = (int) ($duration/60/60); 

$minutes = (int) ($duration/60) - $hours * 60; 

$seconds = (int) $duration - $hours * 60 * 60 - $minutes * 60; 

return ($hours == 0 ? "00":$hours) . ":" . ($minutes == 0 ? "00":($minutes < 10? "0".$minutes:$minutes)) . ":" . ($seconds == 0 ? "00":($seconds < 10? "0".$seconds:$seconds)); 
} 
İlgili konular