1

今日、私は PHP で書かれたプロジェクトを手に入れました。テーブル データ セットに日付を表​​示しようとすると、エラーが発生します。これは、エラーを生成するステートメントです。

$data = new DateTime($registro["previsao de entrega"];

エラーメッセージは次のとおりです。

致命的なエラー: C:\www\fluxo_producao\Telas\ のメッセージ「DateTime::__construct() Failed to parse time string (2 dez 2011 16:00) at position 0 (2 dez 2011 16:00): Unexpected character」を含むキャッチされない例外「Exception」 TelaFluxoProducao.php:941 スタック トレース: #0 C:\www\fluxo_producao\Telas\TelaFluxoProducao.php(941): DateTime->__construct('2 dez 2011 16:0...') #1 {main} がスローされるC:\www\fluxo_producao\Telas\TelaFluxoProducao.php 941 行目

私が自分で発見したことは、パラメーターを手動で「2006 年 12 月 12 日」に変更すると、関数が機能することでした。しかし、変数が渡す日付は「2006 年 12 月 12 日」 (ブラジルの形式、ちなみに私はブラジル人です ^_^) であり、サーバーのデフォルトのタイムゾーンが「America/Sao_Paulo」であることもわかりました...指定された形式に変換するには、関数またはパラメーターで何を変更する必要がありますか?

4

2 に答える 2

1

最後に中括弧を閉じる必要がありますか?

$data = new DateTime($registro["previsao de entrega"]);

これが単なるタイプミスである場合、値$registro["previsao de entrega"]が間違っている可能性があります。それは何ですか?

ここで許可されている値の形式を確認できます: http://www.php.net/manual/en/datetime.formats.date.php

英語の月の値のみを受け入れます。たとえば、Dec機能しますが、機能しDezません。

于 2012-04-05T14:24:33.883 に答える
0

サーバーが正しい時間ロケールに設定されていることを確認します。

setlocale(LC_TIME, 'pt_BR');

これはstrftime()、日付/時刻関連のすべての関数とDateTimeクラスがこの設定を必要/尊重する同じライブラリを使用するために必要です。

于 2012-04-05T14:29:14.187 に答える