PHP で DateTime を文字列に変換する方法

Ralfh Bryan Perez 2023年1月30日
  1. DateTime クラスの format() メソッドを使用する
  2. date_format() メソッドの使用
  3. date_d.php で事前定義されたフォーマットを使用する
  4. PHP で list() を使用して DateTimeString に変換する
PHP で DateTime を文字列に変換する方法

PHP での DateTime の文字列への変換するは非常に簡単です。この目的のために用意されている便利な関数があり、DateTime クラスの format()date_format()、事前定義された形式または list()

DateTime クラスの format() メソッドを使用する

PHP には、日付と時刻を管理するためのクラス DateTime があります。PHP 5.2 以降で使用できます。

日付を管理するために従来の PHP 関数よりも DateTime を使用するいくつかの理由:

  • より多くの文字列フォーマットを処理できます
  • 他の機能より簡単です。
  • インターフェイスは、使用するクリーンなインターフェイスでバックエンドロジックをカプセル化します。

DateTime クラスの便利なメソッドの 1つは format() で、指定された形式に従ってフォーマットされた日付文字列を返します。

例:

$theDate    = new DateTime('2020-03-08');
echo $stringDate = $theDate->format('Y-m-d H:i:s');

//output: 2020-03-08 00:00:00

$stringDate は提供された形式の文字列です。

DateTime->format() は実際にはマイクロ秒をサポートしていません。

date_format() メソッドの使用

date_format() メソッドは新しい DateTime オブジェクトを返し、指定されたフォーマットに従って日付をフォーマットします。

例:

$date = date_create_from_format('d M, Y', '08 Mar, 2020');
echo $newFormat = date_format($date,"Y/m/d H:i:s");

//output: 2020/03/08 00:00:00

date_create_from_format() は、提供されたフォーマットに従って時間文字列を解析するために使用されています。この関数は、formattime、および timezone(オプション)の 3つのパラメーターを受け入れます。

上記の例では、date_format() は作成された日付を処理して文字列に変換します。

date_d.php で事前定義されたフォーマットを使用する

定義済みフォーマットのリスト:

define ('DATE_ATOM', "Y-m-d\TH:i:sP");
define ('DATE_COOKIE', "l, d-M-y H:i:s T");
define ('DATE_ISO8601', "Y-m-d\TH:i:sO");
define ('DATE_RFC822', "D, d M y H:i:s O");
define ('DATE_RFC850', "l, d-M-y H:i:s T");
define ('DATE_RFC1036', "D, d M y H:i:s O");
define ('DATE_RFC1123', "D, d M Y H:i:s O");
define ('DATE_RFC2822', "D, d M Y H:i:s O");
define ('DATE_RFC3339', "Y-m-d\TH:i:sP");
define ('DATE_RSS', "D, d M Y H:i:s O");
define ('DATE_W3C', "Y-m-d\TH:i:sP");

例:

$dateFormat = new DateTime(); // this will return current date
echo $stringDate = $date->format(DATE_ATOM);

//output: 2020-03-08T12:54:56+01:00

上記の例では、事前定義された形式の 1つを使用しているため、実際に提供する必要はありません。

PHP で list() を使用して DateTimeString に変換する

list() 関数は、1 回の操作で変数のリストに値を割り当てるために使用できますが、数値配列でのみ機能します。配列が複数の値に割り当てられている場合、配列の最初の項目は最初の変数に割り当てられ、その後も変数の数の最後まで割り当てられます。ただし、変数の数は数値配列の長さを超えることはできません。

例:

$date = explode("/",date('d/m/Y/h/i/s')
list($day,$month,$year,$hour,$min,$sec) = $date);
echo $month.'/'.$day.'/'.$year.' '.$hour.':'.$min.':'.$sec;

//output: 03/08/2020 02:01:06

list() 関数を使用すると、$day$month$year$hour$min、および $sec を変数として簡単に使用できます。

関連記事 - PHP Date

関連記事 - PHP DateTime

関連記事 - PHP String