PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのtimezone_open()関数とは?使い方とサンプルコードを解説

timezone_open()関数は、指定したタイムゾーン識別子から新しいDateTimeZoneオブジェクトを返すPHPの組み込み関数です。日付や時刻を特定のタイムゾーンで扱いたい場合に、このオブジェクトを作成するための基本となる関数です。

構文

timezone_open(timezone)

パラメータ

  • timezone − タイムゾーン識別子を指定します。完全な名称(例:Europe/Prague)または省略形(例:CET)のどちらでも指定可能です。

戻り値

timezone_open()関数は、処理が成功した場合にはDateTimeZoneオブジェクトを返し、失敗した場合にはFALSEを返します。

使用例1

以下は、timezone_open()関数を使ってタイムゾーンを設定・取得するサンプルコードです。

<?php
   $dateSrc = '2017-06-25 1:50 GMT';
   $dateTime = date_create($dateSrc);

   // timezone_open()でDateTimeZoneオブジェクトを作成
   $DateTimeZone = timezone_open('Europe/Paris');
   date_timezone_set($dateTime, $DateTimeZone);
   $NewDateTimeZone = date_timezone_get($dateTime);

   echo 'New timeZone is '. timezone_name_get($NewDateTimeZone);
echo "\n";

   // DateTimeクラスを使った別の方法
   $dateTime = new DateTime($dateSrc);
   $DateTimeZone = new DateTimeZone('Europe/Paris');

   $dateTime->setTimezone($DateTimeZone);
   $NewDateTimeZone = $dateTime->getTimezone();

   echo 'New timeZone is '. timezone_name_get($NewDateTimeZone);
?>

出力結果

上記コードの実行結果は以下の通りです。

New timeZone is Europe/Paris
New timeZone is Europe/Paris

使用例2

次に、もう少しシンプルな例を見てみましょう。タイムゾーン「America/Chicago」を指定してオブジェクトを作成しています。

<?php
   $res = timezone_open("America/Chicago");
   echo timezone_name_get($res);
?>

出力結果

上記コードの実行結果は以下の通りです。

America/Chicago

まとめ

timezone_open()関数は、タイムゾーン識別子からDateTimeZoneオブジェクトを簡単に生成できる便利な関数です。new DateTimeZone()と同様の働きをするため、手続き型(関数型)のコードスタイルを好む場合に活用するとよいでしょう。無効なタイムゾーンを指定した場合はFALSEが返される点にも注意してください。

  1. PHPのlog()関数とは?自然対数の計算方法と使い方を解説

    定義と使い方log() 関数は、数値の自然対数(natural logarithm)を計算します。対数とは、指数関数の逆演算のことです。たとえば 102=100 という関係は「log10100=2」と表せます。自然対数はオイラー数 e を底として計算され、PHP では定義済み定数 M_E によって e の値(2.7182818284590452354)が提供されています。具体例を挙げると、exp(4.60517018599)=100(つまり e4.60517018599=100)が成り立つため、loge100=4.60517018599 となります。PHP では、この自然対数(loge)を l

  2. PHPのdate_default_timezone_set()関数の使い方を徹底解説

    date_default_timezone_set()関数は、PHPスクリプト内で使用するデフォルトのタイムゾーンを設定するための関数です。日付や時刻を扱う処理では、サーバーの環境設定に依存しないよう、明示的にタイムゾーンを指定することが推奨されています。基本構文date_default_timezone_set(timezone)パラメータtimezone − 設定したいタイムゾーンを指定します。例えば「UTC」や「Europe/Paris」、「Asia/Tokyo」などが挙げられます。タイムゾーン識別子はPHP公式のサポートリストに準拠している必要があります。戻り値指定したタイムゾーンが有