2016-04-28 22 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:(また、POSIX時間やエポック時間としても知られる)

Unixの時間が00から経過した秒数として定義された時間内に瞬間を説明するためのシステムです。 0時00分協定世界時(UTC)、1月1日(木曜日)1970年

そしてstrtotimedocumentationから:

この関数は英語の日付書式を含む文字列が与えられ、その形式をUNIXのタイムスタンプ(1970年1月1日00:00:00 UTCからの秒数)に解析しようとします。

関連する問題