Blog

concrete5で日付を表示するときはDate Helperを使いましょう

Posted by admin at 2:11 日時 2014/02/24

小ネタ更新です。PHPのdate()関数では日本語の曜日が表示できませんが、concrete5のDateヘルパーを使うとログインしているユーザーごとの言語設定、または管理画面から設定できる規定の言語に従って曜日もちゃんと翻訳してくれます。concrete5日本語版を使用している場合は、要するに日本語で表示されるってことですね。

// 2014-01-01 12:12:12  echo $page->getCollectionDatePublic();    // Jan  echo date('M',strtotime($page->getCollectionDatePublic()));    // Wed  echo date('D',strtotime($page->getCollectionDatePublic()));    // Wednesday  echo date('l',strtotime($page->getCollectionDatePublic()));    // Dateヘルパーのロード  $dh = Loader::helper('date');    // 1月  echo $dh->date('M',strtotime($page->getCollectionDatePublic()));    // 水  echo $dh->date('D',strtotime($page->getCollectionDatePublic()));    // 水曜日  echo $dh->date('l',strtotime($page->getCollectionDatePublic()));

書式設定はPHPのdate()関数と互換性があります。使えるフォーマットの一覧はZend_Dateのドキュメントを参照。

Self-Defined OUTPUT Formats Using PHP’s date() Format Specifiers

Dateヘルパーには○○秒、○○分、○○時間、○日と○時間、○○日…と自動でフォーマットを変えて経過時間を表示してくれるメソッドもありますので便利です。

echo $dh->timeSince(strtotime($page->getCollectionDatePublic()));

あと日本はタイムゾーンがひとつで国内に時差が無いため使用頻度は低いかもしれませんが、ログインユーザーごとのタイムゾーンに従って表示するメソッドもあります。

echo $dh->getLocalDateTime($page->getCollectionDatePublic());

いずれも便利ですので、覚えておくと良いと思います。

Dateヘルパーのドキュメント


Share this entry