在新的 WordPress 5.3+ 版本中改进了日期和时间调用组件

在 WordPress 中日期和时间组件包含时间和日期信息的所有输入、输出和存储。它的代码可以追溯到早期版本的 PHP4 中实现,并且经过了部分 PHP5 的改进。

在最近一年多的 WordPress 版本更新中,我们运行了一个名为 “wp_date” 的函数项目来修复和改进日期和时间组件调用,这些改进将集成到最新的 WordPress 5.3 版本中。

  • 使用所有现有代码将具有更正确和可靠的操作。我们修复了一些错误、添加了部分测试,并更正了许多函数的内联文档文件。
  • 在 WordPress 5.3+ 所有版本中的代码将可以访问新的 API 函数,以方便使用和实现 PHP 相互操作性。

 

新的 API 函数

通过将 WP 核心版本所需的 PHP 版本提高到 5.6,我们改进了相应函数组件的 API。

统一时区检索

  • wp_timezone_string() 中无论(timezone_string / gmt_offset 选项) 设置如何,都可以通过一种单一的方式检索站点时区。可能返回 Region/Location 字符串或 ±NN:NN 偏移量。现在两者都是内核支持的 PHP 版本的有效输入。
  • wp_timezone() 检索站点时区作为 DateTimeZone 对象。

PHP 相互操作性

  • current_datetime() 检索当前时间作为 DateTimeImmutable 对象。
  • get_post_datetime() 检索文章时间作为 DateTimeImmutable 对象。
  • get_post_timestamp() 检索文章时间作为 Unix 时间戳。

逐步淘汰 WordPress 的时间戳

现有的日期和时间组件依赖于所谓的 “ WordPress 时间戳”,即带有时区偏移量的 Unix 时间戳的总和。这导致很多错误并且与更新的 PHP 或任何外部系统缺乏互操作性。内联文档错误地将它们称为 Unix 时间戳。

在没有向后兼容性完成前,就不可能完全删除 WP 的时间戳。但是我们在以下方面取得了进展:

  • 减少其在 WP 核心的使用;
  • 更正无效的内联文档;
  • 提供使用真实 Unix 时间戳的新 API。

即将不再推荐

  • 不要将时间作为 WP 时间戳获取:
    • current_time( 'timestamp' )
    • get_post_time( 'U' )
  • 不要根据 WP 时间戳本地化时间:
    • date_i18n( DATE_RFC3339, $timestamp + $offset )
  • 不要持久性地存储 WP 时间戳;
  • 不要比较 WP 时间戳。

WordPress 5.3+ 推荐的方式

  • 检索时间作为 Unix 时间戳或 DateTimeImmutable 对象:
    • time()
    • current_datetime()
    • get_post_datetime()
    • get_post_timestamp()
  • 根据 Unix 时间戳本地化时间:
    • wp_date( DATE_RFC3339, $timestamp )
  • 存储时间精确的 Unix 时间戳或格式,例如 DATE_RFC3339 ;
  • 比较 DateTimeInterface 同一时区中的 Unix 时间戳,对象或字符串可比较的日期。

 

总结

WordPress 日期和时间核心函数组件已急需修复和一系列改进。带有时间和日期的 WordPress 平台上的代码将更加方便和可靠。

如果你对以上改进有疑问和建议,请关注 WordPress 官网查询提交。

 

转载请注明链接地址:荐爱小站 » 在新的 WordPress 5.3+ 版本中改进了日期和时间调用组件

赞 (0) 赏 !

觉得文章有用就打赏一下吧,赠人玫瑰手有余香!

支付宝扫一扫打赏

微信扫一扫打赏