ホームページ >バックエンド開発 >PHPチュートリアル >PHP でタイムゾーンを越えて時刻と日付を変換する方法

PHP でタイムゾーンを越えて時刻と日付を変換する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-23 08:42:29804ブラウズ

How to Convert Time and Date across Time Zones in PHP

PHP でのタイムゾーン間の時刻と日付の変換

異なるタイムゾーンにまたがる時刻と日付を扱う場合、多くの場合変換が必要になります。正確な表現を保証するためにそれらを使用します。この記事では、PHP で時刻と日付をあるタイム ゾーンから別のタイム ゾーンに変換する際の課題と解決策について説明します。

タイム ゾーン オフセットと夏時間 (DST)

時刻変換における主な課題の 1 つは、特定のタイム ゾーンのグリニッジ標準時 (GMT) からの時刻オフセットを取得することです。 [IANA タイム ゾーン データベース](https://www.iana.org/time-zones) などの公開データベースが利用可能ですが、オフセットは特定のタイム ゾーンと時間によって異なる場合があることに注意することが重要です。年の。夏時間 (DST) は、1 年の特定の期間に時間オフセットを一時的に調整するため、問題をさらに複雑にします。

PHP DateTime クラス

PHP は、[DateTime] を提供します。 (https://www.php.net/manual/en/class.datetime.php) クラスは、タイムゾーン間の変換を含む、時刻と日付の操作を処理します。このクラスは次の機能を提供します。

  • 特定の時点を表す
  • 時刻と日付の値を操作する
  • 異なるタイムゾーン間の変換

サンプル スクリプト

次のスクリプトは、DateTime クラスを使用して、あるタイム ゾーンから別のタイム ゾーンに時刻と日付を変換する方法を示しています。

<code class="php"><?php
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "\n";
?></code>

出力:

2000-01-01 00:00:00+12:00
2000-01-01 01:45:00+13:45

このスクリプトは、時刻と日付を「太平洋/ナウル」タイム ゾーンから「太平洋/チャタム」タイム ゾーンに変換する例を示します。 DST.

注: DateTime クラスは PHP 5.2 で導入されたため、正しいバージョンの PHP がインストールされていることを確認することが重要です。さらに、format() などの一部のメソッドは、PHP の新しいバージョンで強化されています。

以上がPHP でタイムゾーンを越えて時刻と日付を変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。