在 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