如何在PHP中管理时区,在这篇快速提示文章中,我们将解释 PHP 中时区使用的基础知识。使用时区是每个使用 Web 应用程序的程序员的基本技能。由于多年来 PHP 主要用于 Web 应用程序,因此它具有相当简单但全面的时区支持。
时区和 PHP
从版本 4 开始,PHP 就支持时区。但是随着和类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 已为您提供保障!