1. ホーム
  2. php

[解決済み】DateTimeクラスのオブジェクトを文字列に変換できない

2022-02-04 04:28:26

質問

以下のような形式の文字列値を持つテーブルがあります。 2012年4月20日(金 というフィールドに Film_Release

でループしているので、それを変換したいのです。 datetime を作成し、別のテーブルにロールアウトします。私の2つ目のテーブルには、カラム Films_Date で、フォーマットは DATE . 次のようなエラーが表示されます。

DateTimeクラスのオブジェクトは、文字列に変換できませんでした。

$dateFromDB = $info['Film_Release'];
$newDate = DateTime::createFromFormat("l dS F Y",$dateFromDB); //( http:php.net/manual/en/datetime.createfromformat.php)

そして $newdate をinsertコマンドでテーブルに挿入します。

なぜこのようなエラーが発生するのでしょうか?

解決方法を教えてください。

なぜなら $newDate は、型 DateTime 文字列ではありません。そのため ドキュメント が明示されています。

新しい DateTime オブジェクトを指定された の書式に従います。

文字列から変換したい場合は DateTime を文字列に戻し、書式を変更するには DateTime::format をフォーマットされた文字列として取り出すために、最後に DateTime .

$newDate = DateTime::createFromFormat("l dS F Y", $dateFromDB);
$newDate = $newDate->format('d/m/Y'); // for example