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


6

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

format_date()を試してみましたが、うまくいきません。

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

回答:


9

は、日付トークンの[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]

1
私が試したところ、電子メールメッセージは[node:field_calendar_date:short]または使用されたトークンのいずれかをレンダリングします
lakers2012

1
これは誰のためにもうまくいきましたか?私にとっては、日付フィールドの背後にあるものはまったく機能しません。他に何かをインストールしたり、トークンを変更したりする必要がありますか?
爬虫類2014年

1
私にとって同じ問題。私が見る限り、「ノード変更」置換トークンは[node:changed:custom :?]を明示的に提案しますが、これは日付フィールドには当てはまりません(Entity APIから「エンティティトークン」を有効にすると、より多くのオプションが提供されます。可能な場合は開始日と終了日を表示しますが、まだカスタム表示はありません)。
WhiteWinterWolf 2014

8

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

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

まあそれはただの迷惑です-代替機能を提供するためにすべてのトークンを複製します。(ポイント2)のヒントをありがとう
Nick

ポイント2も私のためにそれをしました。私はダッシュを試そうとは思っていなかったでしょう!
davidneedham 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.