在 PHP 中获取服务器时区



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

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

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

试试这个:

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

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

    <?php
      echo date_default_timezone_get();
    ?> 

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

<?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');
}?>

此代码将为您提供帮助。

到目前为止提到的所有内容都为您提供了 PHP 默认时区,该时区可以在 php 中设置.ini也可以在代码中的某个地方被覆盖。如果您正在寻找服务器时区,以下是解决方案:

$timezone = $_SERVER['TZ'] ??
    (file_get_contents('/etc/timezone') ?: file_get_contents('/etc/localtime'));

使用以下代码检查:

$datetime = new DateTime();
$datetime_zone = $datetime->getTimezone();
echo $timeZone->datetime_zone();
从Python

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

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

使用 exec 在 PHP 中运行 Python 代码

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

相关内容

  • 没有找到相关文章

最新更新