見出し画像

【第12回】 AMPscript でメールに「曜日」を表示する方法

メールに「日付」を表示するパターンは多いと思うのですが、「曜日」も表示する必要があった場合はどうすれば良いでしょうか?しかも、英語表記ではなく、日本語表記で「日・月・火・水・木・金・土」のように表記するにはどうしたらよいでしょうか?

まずは基本となる「日付」表示のAMPscript の方からおさらいします

「◯年日」と表示する
%%=format(systemdatetolocaldate(getsendtime()),'yyy年MMMM%d日','Date','ja-JP')=%%

2023/01/01のように「0」ありで表記したい場合
%%=format(birthday,'yyyy/MM/dd','date','us-us')=%%

AMPscript でタイムゾーンを修正する場合に systemdatetolocaldate() を使用するか、dateadd() を使用するかは、お好みだと思います。これは、どちらでも結構です。Marketing Cloud をよく知らない方のために、念のため説明しておきますと、日本のタイムゾーンは JST(日本標準時)ですが、一方で Marketing Cloud のサーバーがある場所のタイムゾーンは CST(米国中部標準時)となっています。この時差が 15時間ありますので、JST にローカライズするために systemdatetolocaldate() を使用してあげるか dateadd() を使用して 15時間をプラスしてあげることが必要になるわけです。

また、日付関数で getsendtime() を使用するか、now() を使用するか、という問題もあるかと思います。now() は、事実上「レンダリングする時間」となるため、例えば WEB VIEW リンク(「メールの表示に問題がある方は、こちらをクリックして表示ください」のリンク)のように、レンダリングするタイミングが、操作する人次第で決まるような場合、その WEB ページ上では「WEB VIEW リンクをクリックした日」が採用されてしまいます。この冗長性を無くすには getsendtime() (送信した日付)を使用することで「メールの送信日」で日付の内容が確定しますので、一般的にメールの場合は getsendtime() を使用する、で宜しいかと思います

さて、本題に戻します。「曜日」の表示ですが、以下となります。

「曜日」を含んだ場合
%%=format(systemdatetolocaldate(getsendtime()),'dddd','Date','ja-JP')=%%

「曜日」を含まない場合
%%=replace(format(systemdatetolocaldate(getsendtime()),'dddd','Date','ja-JP'),'曜日','')=%%

細かい話となりますが、この構文で使うクォーテーションマークが 「 ‘ ’ 」 だと「曜日」が英語で表示されてしまいます。必ず「 ' ' 」の方を使用してください。(もし、この違いが分からなければ、メモ帳にコピペして拡大してみてください。)あと、このような構文は覚える必要はないかと思います。使いたい場合に、この note があったことを思い出せるかどうかなので、実際に使う場面が来た時に、また、このページにアクセス頂ければと思います。

今回は以上です。


次の記事はこちら

前回の記事はこちら

私の note のトップページはこちら

この記事が気に入ったらサポートをしてみませんか?