在我的WordPress网站上有3次不同的时间

时间:2018-11-11 作者:Rogério Dec

我在Hostgator(巴西)有一个wordpress网站。服务器显示当前的正确时间(夏令时)。在本例中,正确的时间如下所示,即13h(America / São Paulo). 通过登录putty.exe:

[email protected] [~] # date
2018年11月11日星期日13:55:01-2月<<;-correct time / 美国/圣保罗夏令时

然而,在PHP脚本中,我得到time in 2 hours:

echo date ("e / d-m-Y G: i: s");
UTC/11-11-2018 15:55:01

同时,在Wordpress(管理->设置->常规)中,“时区”字段设置为UTC-3 其中显示:

世界时(UTC)为11/11/2018 15:55:01. 当地时间2018年11月11日12:55:01。

简而言之,服务器显示13h (圣保罗DST的当前时间正确),但PHP显示15h Wordpress显示12h.

如何规范这一点,即这3起案件同时发生?

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

简而言之,服务器显示为13h(在圣保罗夏令时的当前时间是正确的),但PHP显示为15h,WordPress显示为12h。

这是有意的,需要进一步澄清,但要扩展,您必须:

服务器本地时间UTC时间戳需要单独设置,例如,如果我在莫斯科的服务器上托管一个日本网站:

服务器本地时间将是莫斯科时间,UTC时间戳是时间戳,它们始终是UTC时间,本地WP时间将是UTC时间戳+偏移量,也就是东京时间的偏移量您的本地WP安装似乎配置了错误的时区

如何规范这一点,即这3起案件同时发生?

你没有,你的思维模式是不正确的。

WordPress将UTC中的所有时间存储为时间戳。时间戳没有本地化,对于我来说是12点UTC,对于你来说是12点UTC,无论你在哪个时区。WordPress然后根据所需的显示时区添加或减去偏移量。

您需要更改的是偏移量,这就是时区设置所做的,这正是设置上的描述所说的:

enter image description here

很明显,无论您的站点在该下拉列表中具有何种价值,都没有正确选择,可能是没有考虑到夏令时(例如,如果您位于UTC+4时区,并且夏令时向前跳了一个小时,则您不再是UTC+4,您位于UTC+5)

至于服务器时间,如果您使用PHP,则必须先将其转换为UTC,或者在UTC中请求。还可以将服务器时间格式化为时间戳,确保包含时区/偏移量,但这只适用于较新的PHP datetime API

You may also find this useful in understanding the difference between a time and a timestamp with regards to timezones

结束

相关推荐

在带有PHP的子主题中包含style.css

在里面https://codex.wordpress.org/Child_Themes 这是包含样式的最佳实践。css在子主题中,必须将下面的代码放入函数中。php的子主题,但将“父样式”替换为可以在函数中找到的父主题的参数。父主题的php。我在我的主题文件中找不到它,那里也没有多少代码。使用@import包含父主题样式表的方法不适用于我,放入文件的css不会在任何浏览器的站点上显示自己。function my_theme_enqueue_styles() { $parent_s