JavascriptのtoLocaleDateStringメソッドにやられました。

toLocaleDateStringに悩まされたので備忘録。

ブログのRSSフィードをWEBページで表示する際、jQueryプラグインのzRssFeedを使ってみました。

フィードを読み込むと日付が下のような感じで、英語になっちゃいます。

Friday, June 01, 2012 21:26:54

zRssFeedについて紹介している様々なサイトを見たのですが、皆さん普通に日本語の日付で表示されている様子。

実はこれ、ChromeとSafariで見ると英語表記になってしまうようです。
試しにFirefoxやIEで見てみると…、ちゃんと日本語表記になっています。
脱力。

これは、プラグインの日付表記に使われているメソッドが、toLocaleDateString だったからでした。
Date オブジェクトの日付を OS のロケールを使って文字列に変換するんですが、ブラウザによってフォーマットは違うのだとか。
こんなことで半日費やすとは…。

ということで、以下のページを参考にさせていただきました。

すいません教えてください!!! Queryなんですが、zRSSというものなんですが –
Yahoo!知恵袋

ただ、zRssFeedのバージョンによって、変数名が違うようですので、そこは適宜修正してください。また、参考にさせていただいた上記ページでは、年表記にgetYearを使用していましたが、この部分はgetFullYearに変更しました。

//変更前
var pubDate = entryDate.toLocaleDateString() + ' ' + entryDate.toLocaleTimeString();
//変更後 (※時間は必要なかったので削除しています。)
var pubDate = entryDate.getFullYear() + "年" + (entryDate.getMonth() + 1) + "月" + entryDate.getDate() + "日 ";
備忘録 | , , , , |