web-dev-qa-db-ja.com

タイムゾーンオフセットを日付フィールドに適用する

Date Module を使用します。私のcontenttype event日付は次のように保存されています

field_date['de'][0]['value'] = 2011-12-09T10:40:00 (String, 19 characters )
field_date['de'][0]['value2'] 2011-12-09T13:10:00 (String, 19 characters )
field_date['de'][0]['timezone'] Europe/Berlin (String, 13 characters )
field_date['de'][0]['timezone_db'] UTC (String, 3 characters )
field_date['de'][0]['date_type'] (String, 4 characters ) date | (Callback) date();

タイムゾーンを値に適用するにはどうすればよいですか? field_dateまた、日付が表示されている場合は、すべて問題ありません。しかし、私は生のDB値を処理する必要があり、タイムゾーンを適用する必要があります。 php + 1hで手動で実行すると動作するはずですが、それでもまた夏です...

4
whitefleaCH

これを理解するにはかなりの時間がかかりました... format_date 関数を使用しますが、日付をデータベースに保存する方法(通常はUTC)を指定してから、日付フィールドに保存されているタイムゾーンでオフセットしてください-通常、通常の管理者はデフォルトのタイムゾーンを指定します。

foreach ($node->field_date['und'] as $date) {
  $unixdate = strtotime($date['value'].' '.$date['timezone_db']);
  print format_date($unixdate,'medium','',$date['timezone']);
}
11
squarecandy

私は同じ問題を抱えていましたが、Drupal 6.でした http://drupal.org/node/295105#comment-1969952 を見つけましたこれ、そしてDrupal 7バージョンもあるようです http://drupal.org/node/295105#comment-488418 ないようですが個人的にテストしました。

1
rocketeerbkw