我想創建一個JavaScript倒數計時器;如何更改未來的Unix時間戳到秒剩餘
我有一個格式爲YYYY-MM-DD HH:MM:SS的字符串。
這可能是任何時間長達6個月在未來。
從現在到未來的時間,幾秒鐘內完成剩餘時間的最佳方法是什麼?這可以用PHP實現。
在此先感謝!
我想創建一個JavaScript倒數計時器;如何更改未來的Unix時間戳到秒剩餘
我有一個格式爲YYYY-MM-DD HH:MM:SS的字符串。
這可能是任何時間長達6個月在未來。
從現在到未來的時間,幾秒鐘內完成剩餘時間的最佳方法是什麼?這可以用PHP實現。
在此先感謝!
在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;
你如何得到這個基於字符串的時間戳?一個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;
感謝您的幫助,我在做什麼是設置,我在我的網站上投放的比賽截止日期。我以與unix時間戳相同的格式將值輸入到mysql表中 – user866190 2012-01-12 19:42:41
unix時間戳只是一個數字:自1月19日以來的秒數。例如現在,當我輸入這個時,我的本地機器上的unix時間戳是1326397358。 – 2012-01-12 19:43:53
@ user866190通常,您只需將數字存儲在數據庫中,而不是其字符串表示形式。你能做到這一點嗎?還是你堅持使用遺留代碼/現有記錄? – Matt 2012-01-12 19:51:53