我strtotime($datetime)
在 PHP 中使用将文本日期时间描述转换为 Unix 时间戳(参见下面的代码)。
$datetime = '2012-04-17 00:00:00';
$timestamp = strtotime($datetime);
但是,$timestamp
时区(伦敦)的结果是1334617200,时区(北京)的结果是1334620800。
谁能解释我为什么会这样?strtotime()
是否根据时区更改结果?
提前致谢!
我strtotime($datetime)
在 PHP 中使用将文本日期时间描述转换为 Unix 时间戳(参见下面的代码)。
$datetime = '2012-04-17 00:00:00';
$timestamp = strtotime($datetime);
但是,$timestamp
时区(伦敦)的结果是1334617200,时区(北京)的结果是1334620800。
谁能解释我为什么会这样?strtotime()
是否根据时区更改结果?
提前致谢!
从文档中:
此函数的每个参数都使用默认时区,除非在该参数中指定了时区。注意不要在每个参数中使用不同的时区,除非是有意的。有关定义默认时区的各种方法,请参阅 date_default_timezone_get()。
所以是的,它基于时区,除非您在$datetime
对,那是正确的。时区被考虑在内。
另请参阅: PHP - strtotime,指定时区
您可以使用:date_default_timezone_set 设置默认时区,否则使用默认系统时区。
参考:
http://www.php.net/manual/en/function.date-default-timezone-get.php
要使用 GMT,请使用time()作为第二个参数:
strtotime($datetime, time())