我的客户端需要一个系统报告他的插件运行服务器的详细信息,这意味着我必须获取服务器时区。使用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 获取服务器时区偏移量。
from time import gmtime, strftime
print strftime("%z", gmtime())
使用 exec 在 PHP 中运行 Python 代码
$tz_offset = exec("python tz.py");