更新:我已经确认了这个问题(预定的帖子是基于 UTC 时间),现在只需要建议和背景来确定最佳解决方案。问题:
1) WP 在计算本地时区偏移之前如何确定 UTC 时间(即它使用服务器操作系统时间还是其他一些来源 - 在 codex/google 中找不到)
..这将帮助我回答..

2) 将服务器时间从 UTC 更改为本地 PST 是使计划的帖子使用与 WP 时间相同的时区的唯一/最佳方法吗?和
2a) 将服务器时间从 UTC 更改为本地时间是否有任何潜在的负面影响?
3) 准确地更改服务器时间的最佳方法是什么 - 当我设置时钟时,它不必完全正确,但我会担心在服务器上手动设置时间。

大家好-

问题:首先,WP 开始缺少预定帖子的发布。这似乎是一个广泛遇到的问题,我通过使用“错过的时间表”插件修复了它。这可能但不一定是不相关的背景。

迁移到新服务器后不久,WP 就开始提前发布预定的帖子,对我来说,这只能表明我们堆栈中某处的时间/日期设置配置错误。

堆:LNMP,一个 nginx 盒子,一个 db/memcache/php 盒子(虽然我没有,也不能构建它)

据我所知,我们的堆栈中有 4 个地方设置/依赖时间:在 WordPress 常规设置(设置为 PST,但也正确显示 UTC 服务器时间)中,php.ini 中的 PHP5(设置为新服务器所在的中心时间,但一旦我意识到 PHP5,我就更新为 PST 并重新启动 php-fpm有一个时区设置,减少了 2 小时的差异),以及每个盒子的操作系统(两者都设置为 UTC 时间,我一直假设这是可以的,因为 WP 识别它,因此仍然可以设置其“自己的”时间)。

然而,我目前正在目睹一些不应该发生的事情发生。帖子原定于太平洋标准时间上午 9:30 发布,但改为太平洋标准时间凌晨 1:30(世界标准时间上午 9:30)发布。这导致帖子上的“X 年前发布”相对时间戳从 8 小时开始倒计时,然后在太平洋标准时间上午 9:30 再次开始计数。对我来说,这意味着虽然后调度程序(似乎)应该查看(正确配置的)本地 WP 时间(与前端一样),但它使用 UTC(服务器)时间。

解决方案选项:
A。重新设置两个盒子的操作系统、PHP 以及所有 WP 博客,使其仅使用 UTC 时间,并指示所有编辑都以 UTC 时间进行。
B.将两个盒子的操作系统重新设置为 PST 以匹配 PHP 和 WP。 看来这可能是解决方案(因为该帖子在服务器/UTC 时间上发布), ,但我是 *nix n00b,只是想确保我应该使用“date -s”并尽可能准确, 或者如果留下主机支持票要求他们将两台服务器的时间同步到 PST 会更明智吗? (或者如果有更好的方法来精确地表达它)

我不明白的是:
A。为什么发布调度程序在计算发布时间时会忽略“WP 时间”?(更新:我想答案就在这里: http://codex.wordpress.org/Function_Reference/wp_schedule_event - 它直接通过unix时间戳解析时间,而不是通过wp?)
B.如果所有函数不从同一源计算时间,为什么还要将 WP 设置将 UTC 时间与本地时间分开?

为什么这是一个问题:
我们有 15 个站点,主要站点用户位于不同时区。理想情况下,他们可以为每个博客设置 WP“本地时间”,并让所有帖子调度和功能都依赖于该指定时间。如果调度是基于服务器时间,这似乎是不可能的。

有帮助吗?

解决方案

对于初学者尝试 核心控制 插件来查看计划任务是否准确分配。预定的帖子将显示为 publish_future_post > check_and_publish_future_post() 以帖子 ID 作为参数。

许可以下: CC-BY-SA归因
scroll top