PHP のタイムゾーンに従って日付と時刻を表示する

Subodh Poudel 2022年6月21日
PHP のタイムゾーンに従って日付と時刻を表示する

タイムゾーンは場所によって異なります。この記事では、PHP でタイムゾーンに従って時刻と日付を表示する方法を説明します。

DateTime クラスを使用して、PHP のタイムゾーンに従って時刻と日付を表示する

PHP は、日付と時刻の操作を処理するための強力なクラス DateTime を提供します。DateTime クラスを使用して日時を設定できます。

このクラスは、日付、タイムゾーンタイプ、およびタイムゾーンを含むインスタンスを返します。クラスのコンストラクター関数は 2つのパラメーターを取ります。

最初のパラメータは日付/時刻の文字列です。パラメータは、PHP で定義された有効な形式である必要があります。

2 番目のパラメーターとして timezone パラメーターを使用する場合は、now 文字列を使用して現在の日付/時刻を取得することもできます。2 番目のパラメーターはタイムゾーンです。

DateTimeZone クラスのインスタンスを使用して、特定のタイムゾーンを取得できます。DateTimeZone クラスのコンストラクターのパラメーターとしてタイムゾーンを設定できます。

PHP で事前定義されたタイムゾーンのみを使用できます。これらのパラメータで DateTime クラスを使用すると、タイムゾーンに従って現在の日付/時刻が取得されます。

たとえば、パラメータ $timezone を使用して関数 display_dateTime() を作成します。関数内で、DateTime クラスのオブジェクトを作成します。

最初のパラメーターとして"now"を使用し、2 番目のパラメーターとして DateTimeZone() クラスのインスタンスを作成します。DateTimeZone() クラスのパラメーターとして $timezone 変数を指定します。

次に、DateTime クラスの format() メソッドを呼び出し、フォーマットを d-m-Y, H:i:s として指定します。echo 関数を使用して印刷します。

関数の外部で、異なるタイムゾーンで関数を複数回呼び出します。

関数の引数として、タイムゾーン Asia/KathmanduAsia/Tokyo、および Europe/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 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