2012-01-12 62 views
1

我想創建一個JavaScript倒數計時器;如何更改未來的Unix時間戳到秒剩餘

我有一個格式爲YYYY-MM-DD HH:MM:SS的字符串。

這可能是任何時間長達6個月在未來。

從現在到未來的時間,幾秒鐘內完成剩餘時間的最佳方法是什麼?這可以用PHP實現。

在此先感謝!

回答

1

在PHP中您可以使用strtotime,這需要一個日期的字符串表示,並返回Unix時間戳。

然後使用microtime獲取當前的unix時間戳,並找出差異。這將是剩餘的毫秒數,所以將其除以1000以在幾秒內得到它。

http://php.net/manual/en/function.strtotime.php
http://php.net/manual/en/function.microtime.php

這應該工作:

$currentTime = explode(" ", microtime()); 
$currentTime = $currentTime[1]; 
$futureTime = strtotime("YYYY-MM-DD HH:MM:SS"); // insert your date here 
$timeRemaining = ($futureTime - $currentTime)/1000; 
1

你如何得到這個基於字符串的時間戳?一個unix時間戳實際上已經是「自1970-01-01 00:00:00以來的秒數」。這看起來像一個本地的MySQL日期字符串。

如果它來自MySQL,您可以將它轉換爲一個帶有UNIX_TIMESTAMP()的unix樣式時間戳,例如,

SELECT unix_timestamp(datetimefield) ... 

,然後將其轉換爲一個Javascript時間戳通過乘以1000(JS時間戳具有相同的時代,但以毫秒爲單位)。

如果你被困在PHP中,你可以去快速/污垢與

$timestamp = strtotime($time_string); 
$js_timestamp = $timestamp * 1000; 
+0

感謝您的幫助,我在做什麼是設置,我在我的網站上投放的比賽截止日期。我以與unix時間戳相同的格式將值輸入到mysql表中 – user866190 2012-01-12 19:42:41

+0

unix時間戳只是一個數字:自1月19日以來的秒數。例如現在,當我輸入這個時,我的本地機器上的unix時間戳是1326397358。 – 2012-01-12 19:43:53

+0

@ user866190通常,您只需將數字存儲在數據庫中,而不是其字符串表示形式。你能做到這一點嗎?還是你堅持使用遺留代碼/現有記錄? – Matt 2012-01-12 19:51:53