趣味のブログ - d3blog の日付フォーマット
d3blog のメインコンテンツのタイムスタンプは、2010年9月5日9時5分なら 2010-9-5 9:05 と日付がハイフン区切りで月日時はゼロサプレスです。アーカイブ(過去ログの検索)の掲載日は、2010/09/05 とスラッシュ区切りのゼロ付きで、統一されていません。
このサイトではタイムスタンプフォーマットを年月日はハイフン区切りで、月日時のゼロサプレスはしないように統一しているので、d3blog もこれに合わせたくなるのが人情。ってことで、d3blog のメインコンテンツ及びアーカイブのタイムスタンプを変更する方法です。
このサイトではタイムスタンプフォーマットを年月日はハイフン区切りで、月日時のゼロサプレスはしないように統一しているので、d3blog もこれに合わせたくなるのが人情。ってことで、d3blog のメインコンテンツ及びアーカイブのタイムスタンプを変更する方法です。
d3blog でも、最新のエントリなどブロックには日付書式オプションがあるので、簡単にタイムスタンプのフォーマットを変更できます。が、メインコンテンツの執筆日やアーカイブの掲載日は、他のモジュールと違ってテンプレート内の smarty でフォーマットを指定していません。モジュールのプリファレンスにもフォーマット指定がありません。
じゃあ、どこでフォーマット指定しているのかというと、メインコンテンツの執筆日については、言語設定ファイル global.php の _MEDIUMDATESTRING を参照しています。デフォルトでは "Y-n-j G:i" のため、月日時がゼロサプレスされるってことです。
したがって、ここを "Y-m-d H:i" に変更してやれば、月日時がゼロサプレスされなくなります。ROOT パス側の /modules/legacy/language/言語名/global.php を直接書き換えても良いですが、ALTSYS モジュールで書き換えた方が良いと思います。管理者メニューから ALTSYS の言語定数管理で互換モジュールをクリックし、global.php を選択すれば簡単に書き換えられます。
アーカイブの掲載日については、スクリプトを書き換えるしか変更する方法がありません。TRUST パス側の /modules/d3blog/class/entry.class.php の function &getStructure() の
ここを下記のように書き換えると、ハイフン区切りになります。publish_time の "H:M" もバグだと思いますので、"H:i" に書き換えましょう。
フォーマットを直接指定せず、下記のように "s" と指定しておくと、global.php の _SHORTDATESTRING を参照するようになります。こちらに変更した上で、ALTSYS で _SHORTDATESTRING を "Y-m-d" 設定した方が、書式再設定をする可能性がある場合は便利ですね。
2010.10.12 21:43 追記
当サイトの日付は「年.月.日」とハイフン区切りからピリオド区切りに変更しました。
じゃあ、どこでフォーマット指定しているのかというと、メインコンテンツの執筆日については、言語設定ファイル global.php の _MEDIUMDATESTRING を参照しています。デフォルトでは "Y-n-j G:i" のため、月日時がゼロサプレスされるってことです。
したがって、ここを "Y-m-d H:i" に変更してやれば、月日時がゼロサプレスされなくなります。ROOT パス側の /modules/legacy/language/言語名/global.php を直接書き換えても良いですが、ALTSYS モジュールで書き換えた方が良いと思います。管理者メニューから ALTSYS の言語定数管理で互換モジュールをクリックし、global.php を選択すれば簡単に書き換えられます。
アーカイブの掲載日については、スクリプトを書き換えるしか変更する方法がありません。TRUST パス側の /modules/d3blog/class/entry.class.php の function &getStructure() の
$ret['publish_date'] = formatTimestamp($this->published(), "Y/m/d");
$ret['publish_time'] = formatTimestamp($this->published(), "H:M");
が該当部分です。ここを下記のように書き換えると、ハイフン区切りになります。publish_time の "H:M" もバグだと思いますので、"H:i" に書き換えましょう。
$ret['publish_date'] = formatTimestamp($this->published(), "Y-m-d");
$ret['publish_time'] = formatTimestamp($this->published(), "H:i");
フォーマットを直接指定せず、下記のように "s" と指定しておくと、global.php の _SHORTDATESTRING を参照するようになります。こちらに変更した上で、ALTSYS で _SHORTDATESTRING を "Y-m-d" 設定した方が、書式再設定をする可能性がある場合は便利ですね。
$ret['publish_date'] = formatTimestamp($this->published(), "s");
$ret['publish_time'] = formatTimestamp($this->published(), "H:i");
2010.10.12 21:43 追記
当サイトの日付は「年.月.日」とハイフン区切りからピリオド区切りに変更しました。
トラックバック
トラックバックpingアドレス http://www.o-ya.net/modules/d3blog/tb.php/42
コメント一覧
OhYeah!
投稿日時 2010.10.13 22:15 | 最終変更
d3blog 開発者の hodaka さんが、main_archives.html テンプレートの変更で対応されるということなので、このサイトもテンプレートを変更しました。
http://www.kuri3.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=471&forum=2&post_id=2163#forumpost2163
http://www.kuri3.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=471&forum=2&post_id=2163#forumpost2163
1件表示
(全1件)
すべてのコメント一覧へ