【问题标题】:Get server timezone In PHP在 PHP 中获取服务器时区
【发布时间】:2016-09-22 15:02:57
【问题描述】:

我的客户需要一个系统报告他的插件运行服务器的详细信息,这意味着我必须得到 SERVER 时区。使用 Wordpress。 对此进行了尝试,但这不适用于每台服务器。

$date = new DateTime();
$date->setTimezone(new DateTimeZone(ini_get('date.timezone')));

这在某些服务器上给了我一个致命错误, 有任何常用功能来获取服务器时区吗?
非常感谢任何建议。

【问题讨论】:

  • 先检查你的 PHP 版本。
  • 它在 PHP 5.6.3 上工作,不知道客户的 PHP 版本。
  • 然后你必须使用 php_info() 检查客户的 PHP 版本
  • 是的,我查过了。现在是 5.3.29。我的代码适用于哪个 PHP 版本?

标签: php wordpress timezone


【解决方案1】:

请参考以下链接 https://www.w3schools.com/php/func_date_default_timezone_get.asp

    <?php
      echo date_default_timezone_get();
    ?> 

date_default_timezone_get() 函数返回脚本中所有日期/时间函数使用的默认时区。

【讨论】:

  • 这给了我 UTC。但 UTC 是时间标准,而不是时区
  • 它不返回 'default' 时区。它返回'当前默认' 时区。如果您或您的代码流中的其他人已将时区设置为远离系统之一,那么您将得到它。 codephp > echo date_default_timezone_get();太平洋/奥克兰 php > date_default_timezone_set('UTC'); php > 回显 date_default_timezone_get(); UTC php > code
  • 要避免此函数产生的错误,请将@ 放在函数名称前面...所以date_default_timezone_set(@date_default_timezone_get());
【解决方案2】:

试试这个:

$date = new DateTime();
$timeZone = $date->getTimezone();
echo $timeZone->getName();

【讨论】:

    【解决方案3】:

    从 python 获得一些帮助。您可以使用 python 获取服务器时区偏移量。

    from time import gmtime, strftime
    print strftime("%z", gmtime())
    

    用 exec 在 php 中运行 python 代码

    $tz_offset = exec("python tz.py");
    

    【讨论】:

      【解决方案4】:
      <?php 
      date_default_timezone_set();
      if (date_default_timezone_get()) 
      {
          echo 'date_default_timezone_set: ' . date_default_timezone_get() . '<br />';
      }
      if (ini_get('date.timezone')) 
      {
          echo 'date.timezone: ' . ini_get('date.timezone');
      }?>
      

      这段代码会帮助你。

      【讨论】:

      • date_default_timezone_set() hiccup 一个错误,看来这需要一个参数。目前没有给出。
      猜你喜欢
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多