ホームページ  >  記事  >  バックエンド開発  >  PHPでタイムスタンプを西暦時間に変換する方法

PHPでタイムスタンプを西暦時間に変換する方法

PHPz
PHPzオリジナル
2023-03-22 16:33:361393ブラウズ

PHP は、Web 開発で重要な役割を果たし、広く使用されているサーバーサイド スクリプト言語です。タイムスタンプは PHP で非常に一般的なデータ型で、「1970 年 1 月 1 日 00:00:00 UTC」からの秒数を表す整数です。

ただし、タイムスタンプを人間が判読できる AD 時刻形式に変換する必要がある場合は、追加の処理が必要になります。この記事では、一般的な形式の変換方法といくつかの一般的な問題の解決策を含め、PHP でタイムスタンプを AD 時刻に変換する方法を紹介します。

一般的な時間形式

タイムスタンプを西暦時間に変換する前に、どの時間形式に変換するかを明確にする必要があります。 PHP では、一般的な時刻形式は次のとおりです:

  • Y-m-d H:i:s: 年-月-日 時: 分: 秒 (例: 2022-02-22 22:22): 22
  • Y/m/d H:i:s: 上記と同じですが、区切り文字としてスラッシュを使用します
  • Y 年 m 月 d 日 H:i:s: 上記と同じですが、区切り文字として中国語を使用します
  • Y-m-d: 年-月-日、例: 2022-02-22
  • Y/m/d: 上記と同じですが、区切り文字としてスラッシュを使用します
  • Y 年 m 月 d 日: 上記と同じですが、区切り文字として中国語を使用します

形式変換には date() 関数を使用します

PHP組み込み関数 date() を提供すると、タイムスタンプを指定された形式の時刻に簡単に変換できます。この関数の一般的な形式は次のとおりです。

date($format, $timestamp)

ここで、$format は変換される時刻形式、$timestamp は変換されるタイムスタンプです。たとえば、タイムスタンプ 1645533639 を「Y-m-d H:i:s」形式の時刻に変換するには、次のコードを使用できます。

echo date('Y-m-d H:i:s', 1645533639);

出力結果は次のとおりです。

2022-02-22 22:27:19

Similarly , to タイムスタンプを他の形式に変換するには、対応する形式で指定するだけです。たとえば、タイムスタンプを「Y/m/d」形式の時刻に変換するには、コードを次のように変更します。

echo date('Y/m/d', 1645533639);

出力は次のようになります。

2022/02/22

Handlingタイム ゾーンの問題

時刻変換に date() 関数を使用する場合は、タイム ゾーンの問題に注意する必要があります。 PHP のデフォルトのタイムゾーンは UTC 時間であるため、実際の状況に応じてタイムゾーンを調整する必要があります。一般的なタイム ゾーンの設定方法は 2 つあります:

1. date_default_timezone_set() 関数を使用します

この関数はデフォルトのタイム ゾーンを設定できます。たとえば、現在のタイム ゾーンが中国標準時間の場合、タイム ゾーンを

date_default_timezone_set('Asia/Shanghai');

2 に設定できます。タイム ゾーン情報を date() 関数

に渡します。

このメソッドは、date() 関数を呼び出すときに、現在のタイムゾーンを示すパラメーターを渡すことができます。たとえば、タイム ゾーンを中国標準時に設定するには、コードを次のように変更します。

echo date('Y-m-d H:i:s', 1645533639 + 8*3600);

ここで、8 は中国のタイム ゾーン (UTC 8) を表し、タイムスタンプに 8 時間の秒を追加するだけです。 。

Unix タイムスタンプの問題への対処

Unix タイムスタンプは、「1970 年 1 月 1 日 00:00:00 UTC」以降の秒数を表す時間表現方法です。 。 PHP では、タイムスタンプは通常 Unix タイムスタンプを指します。

Unix タイムスタンプに関する一般的な問題は、タイムスタンプが秒単位で計算されるため、精度がミリ秒やマイクロ秒ではなく、第 2 レベルまでしか落ちないことです。より詳細な時間を扱う必要がある場合は、他のタイプの時間表現方法を使用する必要があります。

タイムスタンプを DateTime オブジェクトに変換する

PHP では、DateTime は日付と時刻を表すクラスであり、日付と時刻の加算や減算を簡単に行うことができます。 。タイムスタンプを DateTime オブジェクトに変換するには、次のコードを使用できます。

$datetime = new DateTime();
$datetime->setTimestamp(1645533639);
echo $datetime->format('Y-m-d H:i:s');

その中で、最初に空の DateTime オブジェクトが作成され、次に setTimestamp() を使用してそれにタイムスタンプが設定されます。 メソッド。オブジェクトを作成し、最後に format() メソッドを使用して時間をフォーマットして出力します。

結論

PHP では、タイムスタンプは一般的なデータ型であり、通常、イベントが発生した時刻を記録するために使用されます。タイムスタンプを西暦時間に変換するには、date() 関数を使用するだけです。 date() 関数を使用する場合は、タイムゾーンの問題に注意し、実際の状況に応じて調整する必要があります。より詳細な時間を処理する必要がある場合は、DateTime オブジェクトなどの他のタイプの時間表現を使用できます。

以上がPHPでタイムスタンプを西暦時間に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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