PHP 開発では、日付と時刻の操作は重要な部分です。ユーザー登録時刻の処理でも、記事の公開時刻の記録でも、日付と時刻を処理する必要があります。この記事では、PHP 開発者の助けになればと思い、PHP で日付と時刻を操作する方法を詳しく紹介します。
1. タイムスタンプ
タイム スタンプは時間を秒単位で表現する方法で、通常は 1970 年 1 月 1 日 00:00:00 UTC から現在の時刻までの秒数です。 PHP では、time() 関数を使用して現在のタイムスタンプを取得できます。
echo time();
出力:
1602603419
time() 関数はタイム ゾーンのタイムスタンプを返すことに注意してください。現在のサーバーの。指定したタイムゾーンのタイムスタンプを取得する必要がある場合は、後で紹介する DateTime オブジェクトを使用して変換できます。
2. 日付の書式設定
タイムスタンプの場合、date() 関数を使用して、必要な日付文字列に書式設定できます。 date() 関数の最初のパラメータは日付形式です。これには、さまざまな日付と時刻の要素を表すさまざまなプレースホルダを含めることができます。最も一般的に使用されるプレースホルダーの一部を次に示します。
Placeholder | Description |
---|---|
Y | 年、4 桁 |
m | 月、2 桁 |
d | 日付、2 桁 |
H | 時、2 桁、24 時間形式##i |
#s | |
例:タイムスタンプを年、月、日の形式に変換します: |
2020-10-13
タイムスタンプを時、分、秒の日付時刻形式に変換します:
echo date('Y-m-d H:i:s', time());
出力:
2020-10-13 09:43:39
3. 日付の計算
開発中、10日後の日付を取得するなど、日付の加減算が必要になる場合があります。 PHP には、日付計算を簡単に実行できる DateTime クラスが用意されています。
まず、DateTime オブジェクトを作成する必要があります。コンストラクターで日付文字列を渡すか、createFromFormat() メソッドを使用して、指定された形式に従ってオブジェクトを作成できます:
$dateTime = new DateTime('2020-10-13'); // 或者 $dateTime = DateTime::createFromFormat('Y-m-d', '2020-10-13');
その後、add() メソッドと sub() メソッドを使用して加算と減算の演算を実行できます。たとえば、10 日後の日付を取得する:
$dateTime->add(new DateInterval('P10D')); echo $dateTime->format('Y-m-d');
出力:
2020-10-23
このうち、P10D はプレフィックス P (時間間隔を表す) を表し、10 はその期間の日数を表します。間隔。
さらに、modify() メソッドを使用して日付を加算および減算することもできます。たとえば、3 時間後の時刻を取得する:
$dateTime->modify('+3 hours'); echo $dateTime->format('Y-m-d H:i:s');
出力:
2020-10-13 12:43:39
4. タイム ゾーンの処理
PHP では、タイムスタンプと日付と時刻の文字列が時刻に関連します。ゾーン。デフォルトでは、PHP はサーバーのタイムゾーン設定を使用します。ただし、開発中は、異なるタイム ゾーンの時刻を処理する必要がある場合があり、その場合はタイム ゾーンを処理する必要があります。
PHP では、date_default_timezone_set() 関数を使用してタイムゾーンを設定できます。例:
date_default_timezone_set('Asia/Shanghai');
設定後、date() 関数を使用して日付と時刻を取得するすべての場所指定されたタイムゾーンが使用されます。同様に、タイムスタンプ処理の場合は、タイム ゾーンの問題を回避するために DateTime クラスと関連メソッドも使用する必要があります。
さらに、異なるタイム ゾーン間で変換する必要がある場合は、DateTime クラスが提供する setTimeZone() メソッドと getTimeZone() メソッドを使用することもできます。たとえば、現在のタイム ゾーンの日付と時刻オブジェクトを別のタイム ゾーンの日付と時刻オブジェクトに変換するには、次のようにします。
$dateTime = new DateTime('2020-10-13 09:43:39', new DateTimeZone('Asia/Shanghai')); echo $dateTime->format('Y-m-d H:i:s'); // 输出:2020-10-13 09:43:39 $dateTime->setTimeZone(new DateTimeZone('America/New_York')); echo $dateTime->format('Y-m-d H:i:s'); // 输出:2020-10-12 21:43:39
setTimeZone() メソッドを使用してターゲット タイム ゾーンを設定し、次のようにフォーマットします。 format() メソッドを介して文字列を取得します。
5. 概要
この記事では、タイムスタンプ、日付の書式設定、日付の計算、タイム ゾーンの処理など、PHP での日付と時刻の操作について紹介します。実際の開発において、これらの操作をマスターすることは非常に役立ち、開発効率とプログラムの堅牢性を向上させることができます。この記事が PHP 開発者にとって役立つことを願っています。
以上がPHP での日付と時刻の操作ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。