我注意到 xdebug 日志时间总是早两个小时。例如,它说日志是在上午 7:15 创建的,尽管现在是上午 9:15。
如果我date
在终端中执行,那么我会得到上午 9:15
答案1
根据您对当前情况的评论Thu Aug 1 15:13:26 CEST 2019
,我的理论是 xdebug 日志在 UTC 中运行(或记录),比 CEST 早两个小时。不幸的是,时区似乎不是输出的一部分;正如您所看到的,这使得任何交叉引用的实际时间都变得模糊。
我找到了一个堆栈溢出帖子其中提到将date.timezone
值设置为您想要的时区。它还说:
最好在文件(php.ini)末尾加载 xdebug 扩展。
这php.ini 指令列表表示 的默认值为date.timezone
空,这可能会回退到 UTC。
CEST
由于不是有效值,我的建议是从以下位置选择您的区域此有效 PHP 欧洲时区列表(或南极洲或非洲,视情况而定)。有关更多信息,请参阅PHP 支持的时区的完整列表。
答案2
date.timezone
即使我设置好了php.ini
并xdebug.ini
随后加载,我也无法让它工作。
我的 Xdebug 日志(在 Xdebug 3 中不再称为“远程日志”)仍然显示UTC
时间。除了编辑 Xdebug 源代码并重新编译之外,我找不到任何方法来更改此设置。我在 Xdebug 的源代码中没有看到任何可以将时间转换为本地时间的内容,所以也许这是唯一的方法。
看我的计算器答案我自己的问题以了解更多详细信息。但这是要点。
我所要做的就是在第 196 行左右更改gmtime()
为localtime()
in src/lib/timing.c
function char* xdebug_nanotime_to_chars
。
这可行,但我希望在日志中打印时区代码。
为此,我必须进行更多更改。我创建了一个函数来返回时区字符串,然后将该函数添加到同一文件 ( src/lib/log.c
) 中的日志打开/关闭函数中。