5

strtotime($datetime)在 PHP 中使用将文本日期时间描述转换为 Unix 时间戳(参见下面的代码)。

$datetime = '2012-04-17 00:00:00';
$timestamp = strtotime($datetime);

但是,$timestamp时区(伦敦)的结果是1334617200,时区(北京)的结果是1334620800

谁能解释我为什么会这样?strtotime()是否根据时区更改结果?

提前致谢!

4

4 回答 4

7

从文档中:

此函数的每个参数都使用默认时区,除非在该参数中指定了时区。注意不要在每个参数中使用不同的时区,除非是有意的。有关定义默认时区的各种方法,请参阅 date_default_timezone_get()。

所以是的,它基于时区,除非您在$datetime

于 2012-05-02T15:46:35.390 回答
1

对,那是正确的。时区被考虑在内。

另请参阅: PHP - strtotime,指定时区

于 2012-05-02T15:47:08.290 回答
0

您可以使用:date_default_timezone_set 设置默认时区,否则使用默认系统时区。

参考:

http://www.php.net/manual/en/function.date-default-timezone-get.php

于 2012-05-02T15:50:30.380 回答
0

要使用 GMT,请使用time()作为第二个参数:

strtotime($datetime, time())
于 2015-11-12T19:08:05.157 回答