2012-09-18 80 views
2

我已正确设置PHP的时区。但是Symfony2日志(Monolog)中的时间戳并不反映这一点。日志中时间戳的时区?

  • 它是硬编码到UTC + 0还是什么?
  • 这是日志的最佳实践吗?
  • 我该如何改变这种情况?
+0

你是如何设置时区?你把它设置在php.ini中或用date_default_timezone_set()函数?如果你用一个函数来设置它,那么symfony2系统会预先设置时区(或者使用.ini文件中的默认值)。所以最好的办法是从php.ini中设置它,而不是在runetime。 – Tudor

+0

@TudorTudor我用cli/php.ini和fpm/php.ini – ChocoDeveloper

+0

我不习惯symfony,但在我看来,它必定是某个地方有时间戳同步的问题。尝试在symfony系统的不同位置使用echo date_default_timezone_get()来查看时区更改的时间... – Tudor

回答

-1

至少有两种方法可以使PHP表现得像在您选择的时区一样。

  1. 关注这个其他常见问题,以change timezone for your entire account.

  2. 如果你只是想特别PHP脚本(而不是外壳或其他CGI脚本)使用特定的时区,在喜欢你的PHP代码中设置的时区环境变量所以:

    回声“原始时间:”。日期( “H:I:S”) “\ n” 个。

    putenv(“TZ = US/Eastern”);

    回声“新时间:”。日期( “H:I:S”) “\ n” 个。

如果你把线putenv("TZ=US/Eastern");在一个文件,是 包括()'被所有其他的PHP脚本编,然后所有的PHP脚本将使用该时区。

时区可供选择的名单,除“美/东方”为您运行putenv()等是在这里:

http://en.wikipedia.org/wiki/Lists_of_time_zones

+0

我的时间/时区很好,这是Symfony2日志的特定问题。 – ChocoDeveloper