在 PHP 中使用系统的时区设置

2023-12-06

所以我有一个用 PHP 编写的 Web 应用程序,它将在世界各地的不同 Ubuntu 服务器上运行。 有些服务器将配置为在本地时间运行,有些将在 UTC 运行,这取决于客户。

虽然我可以编辑 php.ini 文件并设置 date.timezone,但手动输入此类数据肯定有一天会出错。

如何让 PHP 使用系统中已定义的时区(tzdata)?

或者,换句话说:如何从 PHP 系统中提取(长)时区名称以在 date_default_timezone_set() 中使用?


在安德烈·克努普(Andrey Knupp)的回答中提供的帮助下,我能够解决这个问题。

echo "Time: " . date("Y-m-d H:i:s") . "<br>\n";

$shortName = exec('date +%Z');
echo "Short timezone:" . $shortName . "<br>";

$longName = timezone_name_from_abbr($shortName);
echo "Long timezone:" . $longName . "<br>";

date_default_timezone_set($longName);
echo "Time: " . date("Y-m-d H:i:s") . "<br>\n";

给出输出:

Time: 2011-12-23 23:29:45
Short timezone:MYT
Long timezone:Asia/Kuala_Lumpur
Time: 2011-12-24 06:29:45

Update:时区的简称不是唯一的。例如,在美国和澳大利亚都有一个“EST”,导致 timezone_name_from_abbr 有时会选择我不想要的那个...您可以询问 date 偏移量有多大,这可以用于进一步匹配正确的时区:

$offset = exec('date +%::z');
$off = explode (":", $offset);
$offsetSeconds = $off[0][0] . abs($off[0])*3600 + $off[1]*60 + $off[2];
$longName = @timezone_name_from_abbr($shortName, $offsetSeconds);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 PHP 中使用系统的时区设置 的相关文章

  • PDO::commit() 成功或失败

    The PHP PDO 提交 http www php net manual en pdo commit php文档指出该方法成功时返回 TRUE 失败时返回 FALSE 这是指beginTransaction 和commit 之间的语句执
  • 在 Kohana 中,可以触发 404 错误吗?

    我有一个名为articles 它创建从数据库获取相关数据的文章模型 我想 如果我调用的方法返回false 触发 404 错误 这是我到目前为止所拥有的 articleName this gt uri gt segment articles
  • 通过jquery传递搜索参数

    我有一个表单 如果用户输入搜索查询 其参数应通过 jquery 传递 并在获取结果后将结果加载到 div 容器中 由于我不太熟悉 jquery 我该怎么做 html currently the data is being displayed
  • 智能位置表单字段

    我的用户注册表单上有一个文本字段location 我本质上希望这个字段能够根据 Google 地图 或同等地图 进行验证 只允许有效位置通过 最好采用类似的格式滑铁卢 伦敦 or 伦敦 英国 要求 除了位置名称之外 我还想返回该位置中心的坐
  • Ubuntu 18.04升级后php7.2-curl无法安装

    今天从 16 04 升级到 18 04do release upgrade d 在升级过程中 我被告知一些软件包将被删除 其中包括 删除 libperl5 22 lxc common perl modules 5 22 php imagic
  • 基本表创建 fpdf

    我找不到使用 fpdf 制作表格并从 mysql 数据库获取数据的合适教程 我只是想知道如何创建一个 我在网上尝试示例时遇到了很多错误 例如 我有 名字 中间名 姓氏 年龄 和 电子邮件 列 如何使用 fpdf 创建表格并回显数据库中的条目
  • $_POST、$_GET 和 $_REQUEST 之间有什么区别?

    我对这些超级全局变量有点困惑 POST GET and REQUEST 在 PHP 中 在 PHP 中哪些场景需要使用这些变量 这三个变量的主要区别是什么 POST是在使用 application x www form urlencoded
  • TCPDF/PHP 和字体:大写数字(血统数字?旧样式?)

    我得到了一种特殊的字体 上面有这样的数字 例如 正如您在 3 上看到的 一些数字下降到基线以下 我想要实现的是 这些数字不会低于该线 并且看起来像这样 在 Word 中 可以在相同字体的字符设置中轻松设置 如何在 TCPDF 中呈现数字 我
  • PHP/MySQL:如何在网站中创建评论部分[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我不会问 如何使用 PHP MySQ
  • jQuery 日期选择器 - 时区问题

    我们在网站上使用 jQuery 日期选择器来选择预订的日期和时间 日历当前设置为太平洋标准时间 当用户尝试从其他时区访问时 这会导致错误 我们是否应该将服务器设置为 UTC 并让应用程序根据用户的 IP 地址自动选择用户的时区 我很好奇我们
  • PHP 相等变量

    我想知道是否有任何方法可以检查大量变量是否相等 如果我只有几个变量 我可以这样做 if a b a c b c 但是 如果我有 20 个变量 则需要一些时间来编写所有组合 还有其他方法吗 if count array unique arra
  • 有什么方法可以在不重新加载的情况下更改标头 URL? [复制]

    这个问题在这里已经有答案了 可能的重复 修改URL而不重新加载页面 https stackoverflow com questions 824349 modify the url without reloading the page 使用新
  • 优化 Keras 以使用所有可用的 CPU 资源

    好吧 我真的不知道我在说什么 所以请耐心听我说 我正在使用 Theano 后端运行 Keras 以在 MNIST 图像上运行基本的神经网络 目前只是一个教程 过去 我一直使用我的旧 HP 笔记本电脑 因为我有 Windows 和 Ubunt
  • 如何在 Laravel 代码中使用 Artisan 命令?

    如何在我的 php caode Ex 中使用 Artisan 命令行 php artisan version to 您可以从控制器调用 Artisan 命令 如下所示 calling of migrate install Artisan c
  • 在 Apache 服务器上将特定的 .htm 页面处理为 .php [重复]

    这个问题在这里已经有答案了 我正在为 Apache 服务器编程 并且只需要将一个特定的 html 页面 例如 first htm 作为 PHP 脚本进行处理 可以设置吗 SetHandler http httpd apache org do
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • 使用 hcitool 扫描低功耗蓝牙?

    当我运行此命令时 BLE 设备扫描仅持续 5 秒 sudo timeout 5s hcitool i hci0 lescan 输出显示在终端屏幕中 但是 当我将输出重定向到文件以保存广告设备的地址时 每次运行该命令时 我都会发现该文件是空的
  • PHP 文件服务脚本:下载不可靠?

    这篇文章最初是关于 ServerFault 的一个问题 https serverfault com questions 131156 user receiving partial downloads https serverfault co
  • 无法与站点通信以检查致命错误

    无法与站点通信以检查致命错误 因此 PHP 更改已恢复 您需要通过其他方式上传 PHP 文件更改 例如使用 SFTP 有什么解决办法 我正在 WordPress 中编辑头文件 遇到这个问题 尝试这个 我有同样的问题并决定调查一下 更改 wp
  • 如何显示 PHP 对象

    我有这样的代码 dataRecord1 client gt GetRecord token table filter echo pre print r dataRecord1 echo pre foreach dataRecord1 gt

随机推荐

  • 如何在vue2.7中删除slot-scope

    我将 vue 应用程序升级到 vue2 7 并且我想从我的应用程序中删除 slot scope 因为它在 vue3 中已被删除 所以在示例中 我看到 vue2 是这样的
  • TSQL 返回结果是否比 SQL Server 中的存储过程更快

    我有一个以前运行良好的存储过程 需要 4 到 5 秒才能得到结果 过去两个月我没有使用这个存储过程 当我现在调用相同的过程时 需要 5 分钟以上才能产生结果 过去两个月没有记录填充到我的源表中 我转换了存储过程并作为 TSQL 块执行 它恢
  • 为什么 C++ 犰狳中的一些特征向量符号与 Python 和 R 不同

    我想知道为什么 Armadillo 的特征向量中元素的符号与 Python 即 numpy 和 R 等其他语言相反 例如 C using namespace arma vec eigval mat eigvec C 11 initializ
  • 合并配置单元中的两列并在运算符之间使用

    我在配置单元中有一个带有列的登录详细信息表 日期 时间 用户 我正在尝试编写一个查询 它可以选择在两个日期之间登录的用户 同时也考虑到时间 例如 我想知道在这段时间里登录过的用户10 12 2012 02 30 00 and 28 12 2
  • 如何将包含 HTML 实体和无效字符的文本转换为其 UTF-8 等效项?

    我正在更改标题 因为我不知道特殊的破损窗口字符给我带来了问题 使问题看起来像重复的 如何转换 HTML 实体 0 9 类型的字符引用和 a fA F0 9 无效的字符引用 和无效的 Windows 字符 chr 151 到其 UTF 8 等
  • PHP磁盘总空间

    我需要有关 disk total space 函数的帮助 我的代码中有这个 Name Email Diskspace Available
  • 检测草地图像中的植物

    我是计算机视觉领域的新手 我想检测草地图像中的某种植物 Original Image Canny Edge Detection Algorithmus Hough Line Transform After Edge Detection 我已
  • 如何在Web服务器上获取用户的IP地址?

    我在将用户的 IP 地址获取到 Web 服务器时遇到问题 我正在使用这段代码 To get the local IP address string sHostName Dns GetHostName IPHostEntry ipE Dns
  • JavaScript 中的串联继承与类继承

    当我一开始看到连接继承时 它对我来说就像一个组合 但人们一直将其命名为继承 然而 类使用原型来创建将对象连接在一起的原型链 现在的问题是 如果串联继承和类继承都做同样的事情 该使用哪一个 这是两种情况的示例串联继承 function Per
  • Reactjs 中的 HTML 表格行跨度

    当我使用地图并想要制作这样的表格时我很困惑 有数据 const arr no 1 name david fruit apple type typeName red apple typeName green apple no 2 name d
  • 在 C# 中将包含多个 XML 文件的单个大文件读取到多个 xml 记录中

    我有一个文件 它实际上包含多个相同格式的 XML 文件 因此该文件本身不是有效的 XML 例如
  • ASP.NET自定义控件,模板字段可以有属性吗?

    例如
  • 在Python中使用更多的小数

    我已经有一个使用二分法来确定某个值的代码 问题是我需要一个如此精确的值 超过 15 位小数 并且在某些时候 python 停止获取更小的数字 我知道 Decimals 库 但是我真的必须将代码中的每个参数重写为 Decimals param
  • C++ 函数模板格式

    只是有一个关于类模板的问题 对于以下代码 该函数运行完全正常 但我很困惑为什么 如何在不提供迭代器的类 类型的情况下运行填充函数 为什么不需要提供迭代器类型 include
  • 卡方测试错误“卡方近似可能不正确”

    我在 R 中进行了卡方检验 结果是 crianza matrix c 1 1 0 12 12 7 2 1 0 0 1 0 0 0 5 0 0 0 1 1 2 0 0 3 0 0 0 13 35 29 0 0 1 10 0 0 1 0 0 0
  • firebase createUserWithEmailAndPassword 在 Android 中不起作用

    我正在尝试使用createUserWithEmailAndPassword方法创建用户但无法这样做 正在调用 OnAuthenticate 方法 但用户对象为 null 并且在 firebase 控制台内没有创建用户 这是我的代码 也是在线
  • 无法看到经典 asp 网站上的错误

    我正在尝试将某些站点从 Windows 2003 Server 迁移到 2008 某些站点在我访问时显示空白页面 显然有错误 但我看不到任何东西 我已经启用了客户端错误和详细错误页面 但没有运气 任何想法 所以只是为了确保你做了所有这些 在
  • jquery 加载器小部件未显示

    我在函数调用期间通过 Ajax 调用使用 Jquery 移动加载器小部件LoadingData它应该显示加载掩码 但它没有显示任何加载掩码 完成后直接弹出结果 我的代码如下 document on pageinit function aja
  • Spring WebClient - 在发生 HTTP 错误(4xx、5xx)时如何访问响应正文?

    我想将异常从 数据库 REST API 重新抛出到 后端 REST API 但我丢失了原始异常的消息 这是我通过 Postman 从 数据库 REST API 获得的信息 timestamp 2020 03 18T15 19 14 273
  • 在 PHP 中使用系统的时区设置

    所以我有一个用 PHP 编写的 Web 应用程序 它将在世界各地的不同 Ubuntu 服务器上运行 有些服务器将配置为在本地时间运行 有些将在 UTC 运行 这取决于客户 虽然我可以编辑 php ini 文件并设置 date timezon