2015-07-12 99 views
0

我有事件具有START_TIME,並節省了UNIX時間的表。我想根據服務器時間在我的網站上顯示倒計時,因此倒計時不取決於用戶當地的時間。 我得到的開始時間和當前時間在服務器上減去它:進入倒計時

$diff= $upc_tourn['start_t'] -time(); 

,但我不知道如何表達倒計時基於這種差異我的用戶。 我想要的輸出是這樣的:

2 days 10:25:30 
+1

我你使用PHP,但下面是一個JavaScript解決方案很好的回答看http://stackoverflow.com/questions/20618355/the-simplest-possible-javascript-countdown-timer –

+0

的http://計算器.com/questions/439630/how-do-you-create-a-javascript-date-object-with-a-set-timezone-without-using-as設置時區。用PHP你將與服務器進行通信,以刷新倒計時 –

+0

@FintanCreaven我不想更改時區 –

回答

0

好以下是我想出了。這是一個快速功能,您可以根據自己的喜好進行簡化和擴展。

這裏是FIDDLE

<?php 

$diff= (time() + 172600) - time(); // replace (time() - 172600) with your time in the future. 

function timedifftostr($timediff) { 
    $days = floor($timediff/(60*60*24)); 
    $days_raw = $days * (60*60*24); 
    $hours = floor(($timediff-$days_raw)/(60*60)); 
    $hours_raw = $hours * (60*60); 
    $minutes = floor(($timediff-($hours_raw + $days_raw))/(60)); 
    $minutes_raw = $minutes * (60); 
    $seconds = floor($timediff-($hours_raw + $days_raw + $minutes_raw)); 
    $seconds_raw = $seconds; 

    echo $days." Day/s ".str_pad($hours,2,0).":".str_pad($minutes,2,0).":".str_pad($seconds,2,0); 
} 
timedifftostr($diff); 
?> 

你可以擴展這進一步增加了對多天的檢查和添加S或不一天。長久以來,答案就是爲了展示未來對你的工作。下面我提供了數學的快速分解。

time() is in seconds. 
    So time()/60 is time in minutes. 
    So time()/60/60 is time in hours. 
    So time()/60/60/24 is time in days. 
+0

謝謝,但這不是倒計時,它只是顯示剩餘時間 –

+0

@ Hirad Roshandel,我意識到之後,評論中提供的鏈接就是一個很好的例子,所以我沒有提供另一個。如果該鏈接沒有回答您的問題,我可以提供一個。 – n099y