如何检查WordPress时区类型?

时间:2018-07-11 作者:Alt C

如果选择城市作为时区,它将保存到“timezone\\u string”选项,但如果选择手动偏移(例如UTC+1),它将保存到“gmt\\u Offset”选项

如果需要gmt\\u偏移,则

<?php echo get_option(\'gmt_offset\'); ?>
这将得到一个整数,如2 or -2.

如果需要时区字符串,请使用

<?php echo get_option(\'timezone_string\'); ?>
这会给你一个字符串America/Indianapolis

但是我的php代码是这样的

  $tzs = get_option(\'gmt_offset\');
  $tzobj = timezone_open($tzs);
  $now = date_create(\'now\',$tzobj );
今天是星期几

$todaywppl=date_format($now, \'l\');
当主题被激活时,wordpress默认为UTC+0,因为$tzs会发出如下警告

timezone_open(): Unknown or bad timezone (0)
我想得到的是今天。。i、 像那样的星期一星期二。如果我把美国/印第安纳波利斯(America/Indianapolis)作为一根弦,这对我来说效果很好。

在此处进行了讨论->Wordpress returns a wrong date

我怎样才能解决这个问题?我能让它双向工作吗?

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

如果我们想使用php的datetime特性和时区对象,并处理使用gmt\\u偏移量的站点,很遗憾,这确实需要一些技巧。我没有找到比这更好的方法:

首先检查时区字符串-得到一个-太棒了进行时区猜测:人们会认为可以从php timezome标识符列表中反算出来。然而,wp允许时区列表中不存在的gmtoffset,有时这些都是“旧的”。因此需要一些硬编码。

以下提供3个功能:

代码尝试这两个选项,并在必要时调用“guess”(猜测)代码进行硬编码时区查找,以覆盖所有wordpress gmt偏移可能性(注释中的链接解释为什么选择了tz字符串)

  • 代码从php olson db列表中反算,以不时交叉检查php认为的偏移量
  • https://snipplr.com/view/328819/wp-timezone-and-gmt-offset/

    结束

    相关推荐

    Home.php中的小部件重定向到index.php

    我注册了一个小部件,允许用户按类别筛选帖子或在搜索框中写些东西,问题是我的“博客”页面是“主页”。php“因为它是一个单页网站(在index.php中,我正在加载所有内容),当我选择一个类别或单击搜索按钮时,它会重定向到索引。php,而不是留在家里。php。我怎样才能改变这种行为?