4

これは簡単な質問かもしれません。

私のプロジェクトで単一の日付形式だけを設定し、この日付形式をどこでも使用できる方法はありますか? どこでも、表示、編集、インデックスのアクションを意味します。必要な形式はY-m-d H:i:sであり、ロケールの日付形式とは関係ありません。

ブートストラップ ファイル内で次のコードを使用しようとしましたが、機能しませんでした

Type::build('date')->useLocaleParser()->setLocaleFormat('Y-m-d');
Type::build('datetime')->useLocaleParser()->setLocaleFormat('Y-m-d H:i');

インデックスでは、日付を として表示し続けました10/10/15, 8:20 PM

また、日付の編集にはテキスト入力を使用するため、日付をテキストボックスに表示する必要があります2015/10/10 20:20

4

2 に答える 2

2

CakePHP には、多くのユーティリティ クラスと関連ヘルパーがあり、反復的または困難な作業のほとんどを実行してくれます。

この場合、ユーティリティ クラスは、必要なデフォルトのフォーマットで設定Timeすれば、グローバルにフォーマットを処理できます。

于 2015-11-14T22:46:44.517 に答える
0

アプリケーションの CONST 値を格納するファイル/クラスを作成し、そのファイル/クラスをアプリケーションのブートストラップ ファイルに自動ロードすることをお勧めします。

define("MYSQL_DATETIME_FORMAT", "Y-m-d H:i:s");

次に、 ApplicationController で などのプロパティを定義し、$mysql_datetime = MYSQL_DATETIME_FORMAT;この値をビュー、ビュー ヘルパー、またはデコレータ クラスに渡します。

この値を使用して変換を実行するユーザー定義またはクラス定義のコールバック (つまりヘルパー) を作成することもできます ( など) function to_mysql_datetime($timeval){...}。その後、ビューで次のように呼び出すことができます。

$formatted_datetime = DateFormatHelper::to_mysql_datetime($other_datetime_value);

これは、この問題に関する CakePHP のドキュメントからのものです。

追加の構成が必要な場合は、それらをアプリケーションの config/bootstrap.php ファイルに追加する必要があります。このファイルは、各リクエストと CLI コマンドの前に含まれています。

このファイルは、多くの一般的なブートストラップ タスクに最適です。

便利な関数の定義。定数の宣言。キャッシュ構成の作成。屈曲の構成。設定ファイルを読み込んでいます。

ブートストラップ ファイルに何かを追加するときは、MVC ソフトウェア デザイン パターンを維持するように注意してください。コントローラーで使用するためにフォーマット関数をそこに配置したくなるかもしれません。コントローラーとビューのセクションで説明するように、アプリケーションにカスタム ロジックを追加するより良い方法があります。

ソース

于 2015-11-13T14:27:04.443 に答える