快速提示:如何在 PHP 中管理时区
在这篇快速提示文章中,我们将解释 PHP 中时区使用的基础知识。 使用时区是每个使用 Web 应用程序的程序员的基本技能。 由于多年来 PHP 主要用于 Web 应用程序,因此它具有相当简单但全面的时区支持。
时区和 PHP
PHP 从第 4 版开始就支持时区。但是最初是作为 date_default_timezone_set()
功能在版本 5 和 7 中迅速发展,引入了 DateTimeZone
和 DateTimeZoneImmutable
类。
这 DateTimeZoneImmutable
是一个子类 DateTimeZone
这使得创建不受修改影响的时区成为可能。 在我们需要确保时区永不改变的情况下,此功能非常有用。
这 date_default_timezone_set()
函数设置给定脚本上所有时间/日期函数使用的默认时区。 该函数允许设置时区,但粒度非常小,迫使我们在整个脚本执行过程中使用相同的时区。
这 DateTimeZone
和 DateTimeZoneImmutable
类为时区的操作带来了更多的控制和多功能性。 我们现在可以访问有关时区的各种信息以及同一脚本上不同时区的多个实例。
使用 PHP 时区
如前所述,在 PHP 中有两种主要使用时区的方法。
使用 date_default_timezone_set()
<?php
date_default_timezone_set('America/LosAngeles');
上的时区 date_default_timezone_set()
方法始终以“大陆/城市”或“大陆/国家/城市”格式定义。 您可以在此处找到 PHP 允许的时区的完整列表。
这会将时区设置为作为参数传递的时区。 设置时区后,我们可以使用类似的功能 date_default_timezone_get()
或任何其他与时间相关的功能,例如 date()
访问新的时区信息。
使用 DateTimeZone 类
在 PHP 中使用时区的更好方法是使用 DateTimeZone
班级。 这意味着我们可以访问更多函数来访问信息和操作时区,并且我们可以实例化该类的多个实例,这允许我们使用多个时区:
<?php
$timezone = newDateTimeZone('America/Chicago');
$datetime = new DateTime($date, $timezone);
echo $datetime->format('Y-m-d H:i:s');
在这个例子中,我们正在创建一个新的 DateTimeZone
对象,并将其传递给一个新的实例 DateTime
. 这 DateTime
然后对象将使用来自 DateTimeZone
目的。 最后,我们使用 format()
函数以我们喜欢的格式输出日期。
结论
正如我们所见,在 PHP 中使用时区非常简单。 确保为您的用例选择最佳的工作方式,PHP 已为您提供保障!