アイキャッチ画像: デスクの上でパソコンを使用している

こんにちは。スタジオ・ウミの山中です。

Dateモジュールで作成した入力フィールドのデータをノードページやViewsで表示させようとしたら表示がおかしくなるバグに出くわしたのでここに記します。 結果から言うと書式のカスタマイズでエスケープ処理?をすればなおりました。

前提条件

☆Drupalの日付はデフォルトの並びだと日本人には読みにくいので変更しておきます。
ついでに書式のカスタマイズも行っていますがそれについてはこちらの記事をどうぞ。

☆DateモジュールとDate APIモジュールを有効にします。
あと日付の入力がとっても楽になるのでDate Popupモジュールも有効にしておきます。

☆Date(日付)タイプのフィールドを作ったコンテンツタイプを作っておきます。
「Date (ISO format)」とか「Date (Unix timestamp)」じゃなくて、「Date」です。
ウィジェットはDate Popupモジュールが有効になっていたら「Pop-up calendar」の項目が出てくるのでそれに設定して、「▼MORE SETTINGS AND VALUES」の中の「Date entry options」を見やすいものに変更しておきます。

その他の設定はデフォルトのまま。ここではあとで見やすいようにDateタイプのフィールドを一番上に移動させています。

ここまでが前提です。ここまできたら日付が簡単に入力できるフィールドが生成されています。

 日付登録して掲載してみる

日付用のフィールドも作ったことだし、早速登録!

ちなみにフィールドのウィジェットを「Pop-up calendar」にしておけば日付を入力しようとするとこのようにちっちゃいカレンダーが出てきて日付を選ぶとその日付が入力されます。便利!

書き込めたら保存します。

やったー!ページの作成ができたー!・・・・・ん?

日付の表示がおかしいですね・・・

解消法

検索したら同じ現象に出会った方がいたようでg.d.oで議論されていました。

cckのdateフィールドで入力した日付データをviewsで出力した際のフォーマットについて。

このページの最後の投稿(2013年9月4日)で簡単に解決することができました。
データタイプの書式の設定で2バイト文字の前にバックスラッシュ「\」を入力することで解決できるようです。多分エスケープ処理。
「Y年n月j日 (l) H時i分」と書いているところを「Y\年n\月j\日 (l) H\時i\分」として、書式を変更するとデータタイプの割当が解除されちゃうみたいなのでもう一回設定しなおしたら解決しました!

↓ ↓ ↓

Windowsなら\じゃなくて¥マークが表示されるかな?
↓ ↓ ↓