2013-07-18 108 views
0

我已經推出一個項目近期(here),我只能和定時器/時間問題:定時器,時區,服務器端的時間,客戶端倒計時

我有誰每天都跑步是一個cronjob,每天兩次:法國時區的午夜和中午。

我想顯示一個「倒計時到下一頁」,這實際上是一個倒計時直到cronjob。

我有點卡住了,因爲當我開始考慮時間和時區相關的事情時,我的大腦就會凍結。

我知道我應該服務器端的時間,並顯示我的變量在客戶端計時器(無需獲得客戶端時間),但這就是它。

我真的很感激一些建議!

在此先感謝大家!

+0

類'DateTime'(或者甚至更好,['DateTimeImmutable'(HTTP:// PHP。 net/manual/en/class.datetimeimmutable.php)用於PHP 5.5+)允許您創建代表特定時刻的值。你可以直接用'<'來比較它們中的兩個,以查找哪一個更早。 ['diff'](http://www.php.net/manual/en/datetime.diff.php)方法可以讓你找到兩個這樣的時刻之間的時間間隔。你有沒有嘗試過使用它們? – Jon

+0

我不確定我的主機有php大於5.4,所以我必須堅持使用dateTime! 我知道diff方法,但我怎麼能有這個特定的「午夜」或「午間」是什麼讓我卡住... –

回答

0

您可以使用php DateTime

  • 當前時間
  • 正午時間
  • 午夜時間

下面是一個例子。

$now = new DateTime; 
$morning = new DateTime('08:00'); 
$night = new DateTime('22:00'); 
// next time is night 
if($now > $morning && $now < $night) 
{ 
    $time = $now->diff($night); 
} 
// next time is day 
else 
{ 
    $time = $now->diff($morning); 

} 

$target = $time->format('%h:%i:%s'); // returns a string. 
相關問題