【问题标题】:Is WordPress's timezone supposed to be set to UTC within themes and plugins?WordPress 的时区是否应该在主题和插件中设置为 UTC?
【发布时间】:2016-10-13 01:40:37
【问题描述】:
我正在为 WordPress 构建一个自定义主题和插件,并注意到对 date_default_timezone_get() 的调用返回“UTC”,即使:
- PHP 配置为本地时区。
- Wordpress 在 Settings:General:Timezone 中设置为本地时区。
这是 WordPress 的正确行为,还是我配置错误、插件错误等?
在调用 PHP 的日期和时间函数之前,我是否需要切换到本地时区(稍后再恢复)?
【问题讨论】:
标签:
wordpress
wordpress-theming
【解决方案1】:
是的,WordPress 确实在内部使用 UTC,因此您从 PHP 的 date()、time() 等函数获得的值也将使用 UTC。您可以将这些封装在对 date_default_timezone_set() 的调用中,但这会变得很混乱。
使用 WordPress 内置的current_time() 功能通常更容易。
它可以返回格式化的日期(就像您使用 PHP 的 date() 函数获得的那样)或时间戳(就像您通过调用 PHP 的 time() 函数获得的那样)。返回的时间值可用于播种 PHP 的其他日期/时间函数。默认情况下,current_time() 返回本地时区的值。
注意:在调用current_time() 之前不要使用date_default_timezone_set() 切换到您的本地时区,否则您会从中得到错误的值。