日付項目

This page is also available in English.

HTML5 は date 入力タイプを導入しました。この入力タイプをサポートするブラウザは日付項目をカレンダー形式の日付ピッカー UI としてレンダリングします。Contact Form 7 は date 入力タイプに対応した datedate*フォームタグをサポートしています。

現時点では一部のモダンブラウザのみがこの date 入力タイプをサポートしています。古いブラウザや Firefox を含む一部のモダンブラウザはこの入力タイプをサポートしておらず、従来型のテキスト入力項目としてレンダリングします。さいわい、それらのブラウザについても Contact Form 7 がフォールバック機能を提供できるようになっています。

日付項目に指定される値は、HTML5 の規定により、YYYY-MM-DD のフォーマットに従う必要があります(例: 2013-04-08)。多くの場合ブラウザの日付ピッカー UI が正しいフォーマットで値を設定してくれるので、気にする必要はないでしょう。

オプション使用例説明
min:(date)min:2013-01-01input 要素の min 属性値。入力可能な最小値を示す。相対的な日付フォーマットも使用可能です。
max:(date)max:2013-12-31input 要素の max 属性値。入力可能な最大値を示す。相対的な日付フォーマットも使用可能です。
step:(num)step:3input 要素の step 属性値。最小数値が 2013-01-01 でステップが 3 のとき、受け入れられる入力値は 2013-01-01、2013-01-04、2013-01-07、… となる。
id:(id)id:fooinput 要素の id 属性値。
class:(class)class:barinput 要素の class 属性値。2個以上のクラスを設定する場合は複数の class: オプションを [date your-date class:y2008 class:m01 class:d01] のようにして並べる。
placeholder
watermark
 値をデフォルト値として使わず、プレースホルダーとして使う。watermark は placeholder のエイリアス。
autocomplete:(value)autocomplete:bdayフォーム自動補完のためのオプション

これらの項目では1個までの値を持つことができ、この値は入力項目のデフォルト値として使われます。

例:

[date* your-date min:2013-01-01 max:2013-12-31 step:7 class:required "2013-04-01"]

相対的日付フォーマットで日付を指定する

datedate* のフォームタグ内で使われる日付を指定するのに YYYY-MM-DD のフォーマットに加えて相対的な日付フォーマットを使うことができます。Contact Form 7 5.3 以降では DateTimeImmutable クラスでサポートされるすべての日付フォーマットが利用可能です。

この手法を使うことで自然な表現を用いて日付を指定できるようになります。例えば次のフォームタグ使用例に見られる “next Friday” のように:

[date date-123 "next Friday"]

フォームタグのオプションで日付フォーマットを使う際には注意が必要です。オプションの値で空白文字を使うことはできないので (空白文字はオプションの区切りとして機能するため)、空白文字の代替としてアンダースコア (_) を使用する必要があります。例えば次のように:

[date date-123 max:next_Friday+7days "next Friday"]

メールでの日付形式

先に説明したとおり、日付項目に指定される値は YYYY-MM-DD のフォーマットに従う必要があります(例: 2013-04-08)。この値がメールテンプレートに挿入される際にも、デフォルトで同じ形式が維持されます。メールでの日付形式を変更するには、メールタグ記法の変種のひとつ、[_format_{field name} "{date format}"] を使います。

例:

[_format_your-date "D, d M y"]

上の例に見られる DdMy といった文字は PHP の date 関数のマニュアルページに記載されている日付フォーマット文字です。"D, d M y" は 2013-04-08 を Mon, 08 Apr 13 としてフォーマットします。このフォーマットはローカライズの影響を受けるので、同じ "D, d M y" のフォーマットを使っていても、日本語にローカライズされた WordPress では 2013-04-08 が 月, 08 4月 13 になります。

WordPress のお問い合わせフォームプラグイン。シンプル、でも柔軟。