时区设置(在“Settings”(设置)“Generel”(常规)“timezone”(时区)”中)似乎被忽略。我已将其设置为“哥本哈根”(价值:Europe/Copenhagen
).
但服务器时间仍比丹麦的实际时间提前1小时。
如果我只是在函数的顶部添加这些行,则调试。php文件:
$datetime = new DateTime();
$datetime_str = $datetime->format( \'Y-m-d H:i:s\' );
error_log( $datetime_str );
重新加载随机页面并转到我的错误日志,然后得到以下结果:
[24-Mar-2021 16:12:08 UTC] 2021-03-24 16:12:09
“UTC”?!嗯。。。
但如果添加,则将上面写的三行替换为:
date_default_timezone_set ( \'Europe/Copenhagen\' );
$datetime = new DateTime();
$datetime_str = $datetime->format( \'Y-m-d H:i:s\' );
error_log( $datetime_str );
然后输出:
[24-Mar-2021 17:12:13 Europe/Copenhagen] 2021-03-24 17:12:13
“欧洲/哥本哈根”->;是的。时间也很准确。
如果我尝试将其设置为其他值(如“UTC+8”),它仍然会显示:[24-Mar-2021 16:12:08 UTC] 2021-03-24 ...
在调试日志中。
注意事项可能在我的主题或插件中的某个地方。但是,仅仅为了调试这件小事,就开始停用所有插件并设置另一个主题,这似乎太过分了。
所以我的问题是:
将我的固定行保留在函数文件的顶部,这是否会对性能造成巨大影响:date_default_timezone_set ( \'Europe/Copenhagen\' );
任何人都能理解为什么时区设置为UTC,而不是我在WordPress设置页面中设置的值吗
最合适的回答,由SO网友:Sally CJ 整理而成
- 。。。为什么时区设置为UTC,而不是我在WordPress设置页面中设置的值,WordPress会计算与UTC的偏移量,因此WordPress sets the default time zone to UTC 而不是您在设置中选择的特定时区→ 一般管理页面。
将我的固定行保留在函数文件的顶部,这是否会对性能造成巨大影响:date_default_timezone_set ( \'Europe/Copenhagen\' );
也许这不是一个大时区,但即使如此,您也不应该更改默认时区。
因为如果您这样做,那么站点健康工具将报告以下(关键问题)(wp-admin
→ 工具→ 现场健康状况):
PHP默认时区在WordPress加载后由date_default_timezone_set()
函数调用。这会干扰日期和时间的正确计算。
但是,在某些情况下,您可以使用date_default_timezone_set()
, 但在使用完代码后,应将默认时区恢复回UTC:
date_default_timezone_set ( \'Europe/Copenhagen\' );
$datetime = new DateTime();
$datetime_str = $datetime->format( \'Y-m-d H:i:s\' );
date_default_timezone_set( \'UTC\' ); // restore it to UTC
但是,WordPress提供了自己的日期/时间功能,可以应用通过管理设置页面设置的时区,例如:。
wp_date()
(或过去,
date_i18n()
), 因此,您可以简单地利用这些功能。例如。
// Display current time in MySQL format using wp_date():
$datetime_str = wp_date( \'Y-m-d H:i:s\' );
// Or you could just use current_time():
$datetime_str = current_time( \'mysql\' );