获取特定时区的unix时间戳

时间:2016-04-28 18:47:25

标签: php timezone unix-timestamp

我目前正在尝试将date_default_timezone_set("Europe/Berlin");的时间戳作为unix时间戳,但它总是会产生UTC 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.

2 个答案:

答案 0 :(得分:1)

By definition

  

Unix时间(也称为POSIX时间或纪元时间)是用于描述时间瞬间的系统,定义为自1月1日星期四00:00:00协调世界时(UTC)以来经过的秒数1970。

来自strtotime documentation

  

该函数期望给出一个包含英文日期格式的字符串,并尝试将该格式解析为Unix时间戳(自1970年1月1日00:00:00 UTC以来的秒数)。

答案 1 :(得分:1)

您获得的时间戳与您期望的时间戳不同,因为您没有指定时区。您可以通过对代码进行以下更改来获得结果:

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