PHP で文字列を日付と日時に変換する方法
文字列を Date
と DateTime
に変換するには、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_format
と DateTime::createFromFormat
の唯一の違いは、DateTime::createFromFormat
が PHP 5.2 以前では使用できないことです。
関連記事 - PHP Date
- PHP で日付に日を追加する方法
- PHP を使用して 2つの日付の差を計算する方法
- PHP で DateTime を文字列に変換する方法
- PHP で 1つの日付形式を別の日付形式に変換する方法
- PHP で現在の日付と現在時刻を取得する方法