服务器strttime不正确



strtotime和mktime都输出了不正确的时间戳,它使我发疯。

如果我添加以下strtotime('2012-10-09');

我得到1349701200

实际上是星期一,2012年10月8日13:00:00 GMT

我正在使用我的Localhost,正在运行MAMP。我假设这是服务器时区问题,但我不明白为什么或如何修复它。

有帮助吗?

strtotime使用默认时区来解释字符串。如果您想要不同的时区,则可以明确指定或更改所有调用:

<?php
if (date_default_timezone_get()) {
    echo  'date_default_timezone:  ' . date_default_timezone_get()."n";
}
echo strtotime('2012-10-09')."n"; # default timezone
echo strtotime('2012-10-09 UTC')."n";
date_default_timezone_set('UTC');
echo strtotime('2012-10-09')."n";
?>

输出

date_default_timezone:  Europe/London
1349737200
1349740800
1349740800

POSIX TIMESTAMP计数自1970-01-01 00:00:00以来的秒数 UTC 。例如,纽约的午夜(00:00)在一年中的这个时候可能是UTC的20:00(同一POSIX TIMESTAMP)。但是00:00在UTC和纽约的00:00对应于不同的时刻(不同的时间戳)。当地时钟通常跟随太阳(大致说话),即使是您在这里的夜晚;太阳在地球上的某个地方闪耀。

相关内容

  • 没有找到相关文章

最新更新