2

私はこの数日間を過ごし、運がなくてもグーグルで検索しようとしました。文字列に日付を保存しています$dob= '2012-10-06 10:45:45 +0000'; 次のコードを使用して、日付に変換しようとしています。

$timezone = 'Europe/Brussels';  
$d = DateTime::createFromFormat("Y-m-d H:i:s P",$dob ,new DateTimeZone($timezone)); 
    echo $d->format("Y-m-d");

しかし、次のエラーメッセージが表示されます。致命的なエラー:非オブジェクトでメンバー関数format()を呼び出す次の形式の文字列からDateTimeを作成するにはどうすればよいですか:2012-10-06 10:45:45 +0000 ?助けてくれてありがとう...

4

2 に答える 2

4

あなたのパターンにないあなたの日付のスペースがあるように見えます。また、Pにはコロンがあり、Oは4桁であるため、P=>Oです。

"Y-m-d H: i: s O"代わりに試してください。

createFromFormat()が失敗し、実際には$ dにDateTimeオブジェクトがないため、エラーが発生している可能性があります。

それでも問題が解決しない場合は、DateTime :: getLastErrors()を調べてください。それは問題を説明するのに役立ちます。

これが私の提案が機能しているPHPサンドボックスへのリンクです: http ://sandbox.onlinephpfunctions.com/code/ee06a025fb9ab47f136eba221382c8b2f84be703

コードの下にある実行ボタンをクリックする必要があります。

于 2012-10-17T00:06:12.453 に答える
-1
YY-MM-DD HH: II: SS tzcorrection
于 2012-10-17T00:13:11.870 に答える