ホームページ > バックエンド開発 > PHPの問題 > PHPをタイムスタンプに変換する実装

PHPをタイムスタンプに変換する実装

PHPz
リリース: 2023-03-29 10:19:39
オリジナル
1534 人が閲覧しました

PHP は、Web 開発で広く使用されている人気のオープンソース スクリプト言語です。中でもタイムスタンプは1970年1月1日0時0分0秒からの経過秒数を表す非常に重要なデータ型です。 PHP では時刻文字列をタイムスタンプに変換するのが非常に便利なので、この記事では PHP でタイムスタンプを変換する方法をいくつか紹介します。

方法 1: strtotime()

strtotime() 関数は、時刻文字列をタイムスタンプに変換する PHP の非常に便利な関数です。日付と時刻を表す文字列を関数に渡すことで、対応するタイムスタンプを返すことができます。このタイムスタンプの値は、1970 年 1 月 1 日の 00:00:00 から経過した秒数を表します。

たとえば、次の PHP コードは、現在の日付と時刻をタイムスタンプに変換します。

echo strtotime("now");
ログイン後にコピー

出力結果:

1623862003
ログイン後にコピー

上記のコードでは、文字列「」を変換します。 now" が strtotime() 関数に渡されます。文字列を現在の日付と時刻として解釈し、対応するタイムスタンプを返します。

同様に、strtotime() 関数を使用して、日付と時刻を表す文字列をタイムスタンプに変換できます。たとえば、次のコードは、「2022 年 1 月 1 日」を表す文字列をタイムスタンプに変換します。

echo strtotime("2022-01-01");
ログイン後にコピー

出力結果:

1640947200
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

上記のコードでは、「2022-01-01」となります。 " 文字列が strtotime() 関数に渡されます。文字列を 2022 年 1 月 1 日の 0 時として解釈し、対応するタイムスタンプを返します。

strtotime() 関数にはサポートされていない日付と時刻の形式があることに注意してください。たとえば、次の形式の時刻文字列はサポートされていません:

  • "yyyy/mm/dd"
  • "yyyy.mm.dd"
  • "yyyy mm dd "

これらの場合、他の方法を使用して時刻文字列をタイムスタンプに変換する必要があります。

方法 2: DateTime クラス

DateTime クラスは、PHP 5.2 以降で定義されているコア クラスで、非常に便利な日付と時刻の操作メソッドを提供します。このうち、DateTime クラスの createFromFormat() メソッドは、日付と時刻の文字列をタイムスタンプに変換できます。

たとえば、次の PHP コードは、「2022 年 1 月 1 日」を表す文字列をタイムスタンプに変換します。

$datetime = DateTime::createFromFormat('Y-m-d H:i:s', '2022-01-01 00:00:00');
echo $datetime->getTimestamp();
ログイン後にコピー

出力結果:

1640947200
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

上記のコードでは、まず、createFromFormat() メソッドを通じて DateTime オブジェクトを作成します。このメソッドは、「2022-01-01 00:00:00」を日付と時刻のオブジェクトとして解釈します。次に、DateTime オブジェクトの getTimestamp() メソッドを使用して、対応するタイムスタンプを取得します。

DateTime::createFromFormat() メソッドには 2 つのパラメーターが必要であることに注意してください。最初のパラメータは日付と時刻の形式で、2 番目のパラメータはタイムスタンプに変換する必要がある日付と時刻の文字列です。たとえば、上記のコードの「Y-m-d H:i:s」は、日付と時刻が「年-月-日 時:分:秒」の形式であることを意味します。

方法 3: mktime() 関数

mktime() 関数は、日付と時刻をタイムスタンプに変換するための PHP の非常に便利な関数でもあります。 strtotime() 関数とは異なり、mktime() 関数では、年、月、日、時、分、秒などのパラメータを渡して、対応するタイムスタンプを取得する必要があります。

たとえば、次の PHP コードは、「2022 年 1 月 1 日」を表す文字列をタイムスタンプに変換します。

echo mktime(0, 0, 0, 1, 1, 2022);
ログイン後にコピー

出力結果:

1640947200
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

上記のコードでは、 mktime() 関数を使用して、年 (2022)、月 (1)、日 (1)、時 (0)、分 (0)、秒 (0) およびその他のパラメーターを渡し、対応するタイムスタンプを返します。

mktime() 関数は、無効な日付と時刻の値 (2 月 30 日など) に対して -1 を返すことに注意してください。そのため、日付と時刻の正当性には注意する必要があります。 mktime() 関数を使用します。

概要

この記事では、PHP でタイムスタンプを変換する 3 つの方法、strtotime() 関数、DateTime クラス、および mktime() 関数を紹介します。その中でも、strtotime() 関数は、さまざまな日付と時刻の文字列をタイムスタンプに変換できる最も便利なメソッドです。 DateTime クラスと mktime() 関数は、特定の状況に応じて選択できる、より柔軟な日付と時刻の操作メソッドを提供します。

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

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート