PHP で文字列を日付と日時に変換する方法

Ralfh Bryan Perez 2023年1月30日
  1. strtotime()date の組み合わせ
  2. DateTime::createFromFormat または date_create_from_format を使用する
PHP で文字列を日付と日時に変換する方法

文字列を DateDateTime に変換するには、strTimetime()date() の組み合わせのように、DateTime::createFromFormat クラスメソッドまたは format() 同じクラス内のメソッド、または date_create_from_format の PHP 組み込み関数

strtotime()date の組み合わせ

strtotime() 関数は、Linux マシンのタイムスタンプのように、1970 年 1 月 1 日から経過した秒数を返します。関数に渡されたパラメーターから合計秒数を返します。

パラメーター:

  • Time/Date(必須) - このパラメーターは、日付/時刻を文字列形式で指定します。
  • Now(オプション) - このパラメーターは、相対日付の計算のベースとして使用できるタイムスタンプです

date() 関数はローカルの日付と時刻をフォーマットし、新しいフォーマットされた日付文字列を返す関数です。

パラメーター:

  • format (必須)-このパラメーターは、提供される文字列の形式を指定します。
  • timestamp (オプション)-このパラメータは整数の UNIX タイムスタンプで、デフォルト値は現在のローカル時間です。

strtotime()date() の両方を適切に使用するには、最初の日付に strtotime() を使用し、次に date() を使用して元に戻します。

例:

$oldDate = strtotime('03/08/2020');

$newDate = date('Y-m-d',$time);

echo $newDate;
//output: 2020-03-08

**注:**日付のフォーマットの区切りとして使用する場合、/- の間に大きな違いがあります。セパレータが/の場合、アメリカのフォーマット m/d/y が想定されます。仕切りが - の場合、ヨーロッパの d-m-y 形式が想定されます。あいまいさを避けるために、ISO 8601 (YYYY-MM-DD) 日付を使用することをお勧めします。

DateTime::createFromFormat または date_create_from_format を使用する

DateTime::createFromFormat は、日付と時刻の形式を表す新しい DateTime オブジェクトを返す組み込みの PHP 関数です。一方、date_create_from_format は、DateTime::createFromFormat を使用した手続き型のスタイルです。

パラメーター:

  • Format (必須) - このパラメーターは、使用するフォーマットを指定します。
  • Time (必須) - このパラメーターは、日付/時刻文字列を表します。このパラメーターが NULL の場合、現在の日付/時刻が使用されます。
  • Timezone (オプション) - 時間のタイムゾーン。デフォルト値は現在のタイムゾーンです。

DateTime::createFromFormat の例:

echo $dateNew = DateTime::createFromFormat('m-d-Y', '03-08-2020')->format('Y/m/d');
//output: 2020/03/08

date_create_from_format の例:

echo $dateNew = date_create_from_format("m-d-Y", "03-08-2020")->format("Y-m-d");
//output: 2020/03/08

date_create_from_formatDateTime::createFromFormat の唯一の違いは、DateTime::createFromFormat が PHP 5.2 以前では使用できないことです。

関連記事 - PHP Date

関連記事 - PHP String