web-dev-qa-db-ja.com

ルールで日付をフォーマットする

ノードの作成時にメールを送信するルールを使用しています。 ActionおよびMessage bodyの下に、[node:field_calendar_date]を挿入します。トークンは(たとえば)電子メールメッセージで「2012-12-14T08:00:00」に置き換えられますが、「12月14日金曜日の午前8:00」(同じ日付ですが、別の形式)。

format_date() を試してみましたが、機能しません。

必要な形式を取得するにはどうすればよいですか?

6
lakers2012

[node:field_calendar_date:custom:l, Fd, gia]が日付トークンの場合、[node:field_calendar_date]を使用できます。その場合、[node:field_calendar_date:custom]は、次のコロンの後にリストされているカスタム形式で日付を返します。フォーマット文字列は date() で受け入れられるものです。

Drupal日付設定で、フォーマットセットをショート/ミディアム/ロングフォーマットセットとして使用する場合は、次のトークンを使用できます。

  • [node:field_calendar_date:short]
  • [node:field_calendar_date:medium]
  • [node:field_calendar_date:long]
9
kiamlaluno

わかりました、わかりました。フードの下のロジックを本当に理解していなくても機能しません...実際、私が抱えていた2つのブロッキングの問題は次のとおりです。

  1. 日付は範囲となる可能性があるため、[node:field_date]を日付トークンと見なすことはできません。 エンティティAPI をインストールし、モジュール「エンティティトークン」を有効にして、実際の日付値にアクセスします。
  2. あいまいな理由により、エンティティトークンが元のトークン名の下線([node:field_date ...)をダッシュ​​([field-date ...)に置き換えると、適切にフォーマットされた日付(私のケースは「[node:field-date:value:custom:Ym]」で、元の質問では「[node:field-calendar-date:value:custom:l、F d、gia]」だと思います)
8
WhiteWinterWolf