2010-09-04 53 views
0

確定好我有這個錯誤與反我做女巫suppost倒計時到0PHP的:UNIX時間戳計數backwords問題

$time=1283593330+(60*15); 
$time3= time(); 
$time2=$time-$time3; 

1283593330=Sat, 04 Sep 2010 09:42:10 GMT 

錯誤是這樣的: 當$時間3時間戳打時間戳。 $ time它表示05:00:00 00:00:00的實例。 這是我用來調用它的代碼。

Time left: '.date('g:i:s ',$time2).'<br /> 

IM不確定是不是我做錯了什麼,如果5是UNIX_TIMESTAMP或PHP

日期稱道的主要時間反正有解決這一問題?或者這是來自於時間戳,就是我需要的一個想法的不好之處。

+0

'$時間= 1283594342 +(60 * 15);'?這是什麼意思?你能詳細說明你想要做什麼以及你有什麼問題嗎? – 2010-09-04 10:29:14

+0

你能否解釋一下你得到的錯誤,你並沒有完全理解。 – 2010-09-04 10:29:17

+0

即時對不起我的英語和語法是不好的給我15和生病嘗試重新對它正確 – Catles 2010-09-04 10:30:32

回答

2

你的時區比UTC早5小時:你說1283593330是09:42,但它實際上是04:42 UTC。

$time2是零,這代表了Unix時間紀元:這是午夜(UTC)在1月1日1970年所以,當你輸出這個使用date,它顯示在你的時區那段時間:00:00 UTC這是05: 00在你的時區。

重要的是當達到目標時間時$time2爲零。

鑑於您的計數器倒計時15分鐘,就可以得到這樣的剩餘時間:

$hours = floor($time2/60); 
$mins = $time2 % 60; 
printf("Time left: %d:%02d\n", $hours, $mins); 
+0

只是改變我的服務器時間,並得到它的工作太多 – Catles 2010-09-04 11:01:33

+0

你的意思是你已經改變了服務器上的時區?這沒有必要。使用'date'將'$ time2'顯示爲日期/時間並不合理;這是一個時間差異,而不是絕對的時間。無需在服務器上設置特定的時區就可以輕鬆實現這一功能。 – 2010-09-04 11:06:26