【第12回】 AMPscript を使ってメールに「曜日」を表示する方法
マーケティングメールを作成する際、「日付」を表示するパターンは多くありますが、「曜日」も一緒に表示したい場合があります。
その形式は、英語ではなく、日本語で「日・月・火・水・木・金・土」といった形で表示をする必要がある場合に、どうすれば良いでしょうか。
そこで、今回は Salesforce Marketing Cloud の AMPScript を使って、日本語の「曜日」を表示する方法を紹介します。
■「日付」を表示する AMPscript
まずは、「日付」を表示する AMPscript の方から簡単にお浚いします。
「◯ 年 ◯ 月 ◯ 日」と表示する場合
%%=Format(SystemDateToLocalDate(GetSendTime()),'yyyy年MMMM%d日','Date','ja-JP')=%%
2023 / 01 / 01 のように「0」を含めた形で表示したい場合
%%=Format(DateAdd(Now(),'15','H'),'yyyy/MM/dd','Date')=%%
参考:他の表示の例は、下記 note で確認してください。
ここでタイムゾーンのローカライズが必要になります。AMPscript で修正する際に、SystemDateToLocalDate() を使用するか、DateAdd() を使用するかは、好みの選択で良いと思います。
また、日付関数で GetSendTime() を使用するか、Now() を使用するかという問題もあるかと思います。
以下がそれぞれの定義です。
基本的には、どちらを使っても問題ない認識ですが、VAWP(メールを Web ページとして表示)のリンクを踏んだ場合に状況が変わってきます。
メール本文のデータは送信時にレンダリングされるため静的ですが、VAWP のリンクは毎回ページが開かれるたびに最新のデータを取得し、再度レンダリングが行われます。この違いが、GetSendTime() と Now() の挙動に影響を与えます。
GetSendTime():メール送信時の日時が固定されて表示されます。例えば、2024 年 12 月 25 日に送信したメールは、VAWP で表示してもその日付のままです。
Now():ページを開いた時点の日時が表示されます。2024 年 12 月 25 日に送信されたクリスマスメールでも、2025 年 1 月 1 日に VAWP リンクを開けば、その時点の 2025 年 1 月 1 日が表示されます。
どちらも時刻を取得する関数ですが、上記の点には注意して下さい。
■「曜日」を表示する AMPscript
さて、ここで話を本題に戻しますと「曜日」の表示は、以下となります。
「○曜日」を含ませる場合(例:月曜日)
%%=Format(SystemDateToLocalDate(GetSendTime()),'dddd','Date','ja-JP')=%%
「○曜日」を含まない場合(例:月)
%%=Replace(Format(SystemDateToLocalDate(Now()),'dddd','Date','ja-JP'),'曜日','')=%%
「○曜日」を含まない場合は、少し力技ですが、Replace() を使って「曜日」を空欄に置換して除外するという方法を採っています。
このような構文は覚える必要はないと思います。使いたい場合に、このような記事があったことを思い出し、検索でこの記事に戻ってきてください。
今回は以上です。