在 PHP 中根据时区显示日期和时间

Subodh Poudel 2022年6月15日
在 PHP 中根据时区显示日期和时间

时区因地点而异。本文将教我们如何在 PHP 中根据时区显示时间和日期。

在 PHP 中使用 DateTime 类根据时区显示时间和日期

PHP 提供了一个强大的类 DateTime 来处理日期和时间操作。我们可以使用 DateTime 类设置时间和日期。

该类返回一个包含日期、时区类型和时区的实例。类的构造函数有两个参数。

第一个参数是日期/时间字符串。该参数应采用 PHP 定义的有效格式

如果我们使用 timezone 参数作为第二个参数,我们也可以使用 now 字符串来获取当前日期/时间。第二个参数是时区。

我们可以使用 DateTimeZone 类的实例来获取特定的时区。我们可以将时区设置为 DateTimeZone 类的构造函数的参数。

只能使用 PHP 预定义的时区。使用带有这些参数的 DateTime 类将根据时区获取当前日期/时间。

例如,创建一个带有参数 $timezone 的函数 display_dateTime()。在函数内部,创建一个 DateTime 类的对象。

使用 "now" 作为第一个参数,并创建一个 DateTimeZone() 类的实例作为第二个参数。提供 $timezone 变量作为 DateTimeZone() 类的参数。

接下来,调用 DateTime 类的 format() 方法并提供格式为 d-m-Y, H:i:s。使用 echo 功能进行打印。

在函数之外,使用不同的时区多次调用函数。

使用时区 Asia/KathmanduAsia/TokyoEurope/Madrid 作为函数参数。这些时区应该是一个字符串。

示例代码:

function display_dateTime($timezone){
    $date = new DateTime("now", new DateTimeZone($timezone));
    $timezone = explode('/',$timezone);
    echo $timezone[1].": ".$date->format('d-m-Y, H:i:s')."<br>";
}

display_dateTime('Asia/Kathmandu');
display_dateTime('Asia/Tokyo');
display_dateTime('Europe/Madrid');

在上面的示例中,我们使用 explode() 函数修剪了城市的名称。我们使用斜线/作为分隔符。

例如,"Asia/Kathmandu" 将被形成为 ["Asia, Kathmandu"] 作为一个数组。我们从数组中提取第一个索引以仅获取城市名称。

结果,我们可以根据时区看到不同的时间。

输出:

Kathmandu: 07-06-2022, 11:27:35
Tokyo: 07-06-2022, 14:42:35
Madrid: 07-06-2022, 07:42:35

这样,我们可以使用 PHP 的 DateTime 类根据时区设置时间和日期。

作者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

相关文章 - PHP Date

相关文章 - PHP Timezone