2016-04-28 60 views
1

我目前正在試圖獲取date_default_timezone_set("Europe/Berlin");的時間戳作爲unix時間戳,但它始終會導致UTC unix時間戳。獲取特定時區的unix時間戳

// Current time: "2016-04-28 20:37:20" 

date_default_timezone_set("Europe/Berlin"); 
echo date('Y-m-d H:i:s'); 
// -> "2016-04-28 20:37:20" 

echo strtotime(date('Y-m-d H:i:s')); 
// -> 1461868642 which is Thu, 28 Apr 2016 18:37:22 GMT 
// i need here 1461875840 which is the current time. 
+1

根據定義,時間戳採用UTC。 – Mike

回答

1

由於您沒有指定時區,因此您會得到與您期望的時間戳不同的時間戳。您可以通過對您的代碼進行以下更改獲得結果:

echo strtotime(date("Y-m-d H:i:s") . " GMT"); 
1

By definition

Unix時間(也稱爲POSIX時間或曆元時間)是用於說明時刻在時間,定義爲自00之後所經過的秒數的系統: 00:00協調世界時(UTC),週四,1月1日1970年

而且從strtotimedocumentation

函數期望給定一個包含英文日期格式的字符串,並將嘗試將該格式解析爲Unix時間戳(自1970年1月1日00:00:00 UTC以來的秒數)。