有一项任务是从 Yandex 向站点提取天气预报。日期以 格式显示<time class="time forecast-briefly__date" datetime="2021-10-22 00:00+0300">22 окт</time>。
- 我在 $date 中输入了 datetime 属性“2021-10-22 00:00+0300”的值
- 我使用“day.month”形式获取日期
date('d.m', strtotime($date)) - 一周中的某一天,分别通过
strftime('%a', strtotime($date))
在测试常规 php 页面(没有引擎)上,所有内容都输出并正确显示:22.10, Fri. 但是,当我将此代码传输到 Wordpress 下的网站主页时,我得到了昨天:(21.10, Thu所有其他数据都正确提取,适用于今天的日期)。
当然,这个问题是通过在 date 上加一天来解决的strtotime($date)+86400,但这显然是一个“拐杖”。
你能告诉我为什么它在 Wordpress 中不能正常工作strtotime($date)吗?也许还有其他方法可以从 datetime="2021-10-22 00:00+0300" 获取我需要的数据?
WordPress 中的日期函数已弃用,因为根据时区设置,它可能会产生不正确的结果。如果您使用 Code Sniffer 和 WPCS 编码标准,您将在编码阶段收到警告。
您需要使用该功能
wp_date()。以下是在时区设置为 UTC+3 的站点上带有日期和 wp_date 的示例代码。date、strftime 等函数需要知道您在哪个时区调用它们。要管理时区,有date_default_timezone_set函数。WordPress 最有可能调用它并根据站点配置安装它。
了解您如何丢失时区信息:
我google了一下,时区是通过管理界面设置->时区设置的。确保那里有正确的时区。