2015-03-25 91 views
-1

我一直在Google上搜索2小時,並發現問題與Unix時代有關。需要關於UNIX時代的幫助

我想要做的是在php中倒計時。正如你在下面看到的,(給他們的信件很容易轉介)。

B減C等於A.但是它給了我這樣的:「31/12/69 19點00分08秒」,但我想有「00/00/00 00:00:08 「

(A)31/12/69 19時00分08秒=(B)25/03/15 0點13分26秒 - (C)25/03/15零點13分十八秒

而這個問題導致我的倒計時出現問題。當我想從10:00(Min,Sec)倒數時,它從60:00開始倒計時,到達50:00倒數停止。所以它的作品! 10分鐘後停止,但問題是,它從60倒數。所以,它是由我猜unix時代引起的。如果我可以初始化不必要的部分,在日期中,爲零或空我可以解決這個問題。


$pastTime = $currentTime - $row['startTime']; 
      if($pastTime >= $row['durationTime']){ 
       $processStatus = "Completed"; 
       $remainingTime = 0; 
      }else{ 
       $processStatus = "in Process"; 
       $remainingTime = $durationTime - $pastTime; 
      } 
      echo "<td>" . date('i:s', $remainingTime) . "</td>"; 
      echo "<td>$processStatus</td>"; 
      echo "</tr>"; 

這是我的一些代碼的一部分。所以,當我這樣做時,我遇到了問題; date('i:s', $remainingTime)。您看到的所有變量都包含由time()函數生成的秒數。

+0

請提供您所描述行爲的代碼片段,最好是[SSCCE](http://www.sscce.org)。 – dimo414 2015-03-25 04:32:02

回答

0

您沒有共享任何代碼,但我認爲您可以減去兩個時間戳以秒計算出差異,然後將結果格式化爲unix時間戳。

問題在於最後一步。當你減去這兩個數字時,你確實得到了一個(大部分)正確的數字,但是你決定使用(假定)date()來顯示。

相反,你可能想嘗試使用兩個DateTime對象,請使用diff得到的差值(作爲DateInterval對象),然後使用DateInterval::format得到你真正想要的格式。