1

答えがあるかもしれないものは何でも、質問の一部だけに答えてください。

Cake の新しい 2.2 バージョンでは、タイム ゾーンのサポートが改善されました。これは、非常に「時間に敏感な」アプリに取り組んでいるため、完璧なタイミングです。できる限り試してみてください。すべてを機能させることはできません。だからここに私の質問があります:

日時エントリ (作成/変更されたと考えてください) を UTC で保存する必要がありますか? もしそうなら、ケーキがUTCを使用していることを確認する最も効率的な方法は何ですか?

タイムスタンプ (正確な瞬間) は、int またはタイムスタンプとして mysql に保存する必要がありますか?

新しい Cake を使用して、UTC int/timestamps をデフォルトのサイト タイムゾーンに自動的に変換するにはどうすればよいですか? ユーザーのタイムゾーン (ユーザーのタプルに保存)?

datetime (作成/変更) 時刻が UTC として保存されている場合、cake を使用してデフォルトのサイト タイムゾーンに変換するにはどうすればよいですか? ユーザーのタイムゾーン?

ありがとうございました!

4

1 に答える 1

2
  1. サイトユーザーの時間設定をカスタマイズする場合は、グローバル時間設定、つまりUTC形式を使用する必要があります。UTC形式でデータベースに保存します。app / Config / core.phpには、次の行があります。

    date_default_timezone_set('UTC');  // at line 232
    

    したがって、データベースに時間を節約しながら、ケーキがUTC時間形式を使用することを確認できます。

  2. 次の項目は、MySQL4.1.2より前のTIMESTAMPの初期化と更新のプロパティをまとめたものです。

    テーブル行の最初のTIMESTAMP列は、列がNULLに設定されているか、まったく指定されていない場合、レコードが作成されるときに現在のタイムスタンプに自動的に設定されます。

    TIMESTAMP列にNULL以外の値が明示的に割り当てられていない限り、行の他の列の値が変更されると、テーブル行の最初のTIMESTAMP列が現在のタイムスタンプに自動的に更新されます。

    テーブルの作成時に最初のTIMESTAMP列にDEFAULT値が指定されている場合、それは黙って無視されます。

    テーブル内の他のTIMESTAMP列は、それらにNULLを割り当てることにより、現在のTIMESTAMPに設定できますが、自動的には更新されません。

タイムスタンプを自動的に変更したくない場合は、タイムスタンプを整数フィールドに保存する方がよいと思います。

于 2012-07-17T04:46:09.160 に答える