4

PHPで日付形式を変換しようとしています。

次のコードは永続的なエラーを作成します

$myDate = "31/12/1980";

$myDateTime = DateTime::createFromFormat('d/m/Y', "$myDate"); 

$newDate = $myDateTime->format('d M Y');

echo $newDate;

createFromFormat() を含む行は、エラーを作成し続けます: " "call to undefined method". これは、テスト用の Apache サーバーと実際のサーバーの両方で発生し、どちらも PHP 5.3+ を実行しています。

追加のファイルを含める必要がありますか? 助けてください-私はphpの低中級者です。

4

3 に答える 3

4

このエラーが発生する理由として考えられるのは、次の 2 つだけです

  1. 実際には PHP 5.3 以降を使用していないため、そのメソッドは存在しません。コードが実行されている PHP のバージョンを再確認してください。おそらく、Web サーバーの構成にエラーが発生している可能性があります。それが本当にそうであり、それを変更できない場合は、PHP DateTime::createFromFormatin 5.2?を参照してください。代替用。
  2. あなたは名前空間にいて、のように呼び出す必要があります\DateTime::createFromFormat(...)
于 2013-04-18T04:34:17.610 に答える
-2

私は解決策を見つけました。日付変換の正しい構文は次のとおりです。

$myDate = "01-12-1980";
$tempDate = date_create("$myDate");
$newDate = date_format($tempDate, 'j M Y');
echo "$newDate";

出力を生成します:1980年12月1日(dの代わりにjが日番号から先行ゼロを削除します)

その点に注意してください:

$newDate = date("d M Y", strtotime($myDate));

予想される入力形式はmm/dd / yyyyであるため、この例では機能しません。他の形式を使用すると、誤った出力日が生成されます。

于 2013-03-12T21:56:18.633 に答える
-2

これは通常、メソッドが見つからない場合に発生します。つまり、このメソッドを含むファイルが含まれていないことを意味します。DateTime::createFromFormat のコードを投稿できますか?

于 2013-03-11T14:32:22.047 に答える