すべての日付を UTC でデータベースに保存します。Cakephp は UTC で実行され、UTC で mysql と通信します。今、私は次のシナリオを持っています:
debug(CakeTime::format('Y-m-d H:i', '2013-03-22 03:00', false,
new DateTimeZone('Europe/Berlin')));
//output is 2013-03-22 04:00
debug(CakeTime::format('Y-m-d H:i', '2013-04-05 03:00', false,
new DateTimeZone('Europe/Berlin')));
//output is 2013-04-05 05:00
2 番目の例で CakeTime が 2 時間のオフセットを追加したことがわかるように、これは DST (31.03.2013 から開始) を考慮しているためだと思います。
しかし、私がやろうとしているのは、定期的なイベントをカレンダーに表示することであり、このイベントは毎週金曜日の午前 4 時に開始されます。夏でも常にです。そのため、カレンダーでは午前 5 時に表示されない場合があります。
/EDIT: 最初の例は正しいです。イベントは午前 4 時に行う必要があります。でも夏にも