stroll [名] [C] ぶらぶら歩き,散歩.

  スポンサーサイト

一定期間更新がないため広告を表示しています

- | permalink | - | - | ↑top
Clip!! | Ranking |

  some days ago 表示スクリプト ver.1.0

some days ago 表示スクリプト ver.1.0
記事・コメント・トラックバックなどの日付表示を、Flickrや海外のblogなどで最近よく見る「Posted 10 days ago.」のような表示に変更するスクリプトです。
#「10日前」という表示も可。

以下の内容を表示できます。
・60分未満の場合は、分単位で表示。 例)5 minutes ago.
・24時間未満の場合は、時間単位で表示。 例)6 hours ago.
・24時間以上前の場合は、日単位で表示。 例)7 days ago.


以下、設置方法です。
まず、各記事・コメント・トラックバックそれぞれ表示を変更したい箇所を以下のように変更します。

・記事の表示を変える場合
投稿日時表示タグ(例えば{entry_date})を以下のように変える、または追加してください。
<span class="some_days_ago">{entry_date} {entry_time_only}</span>
記事の表示に関するJUGEM独自タグは、記事の表示に関するタグを見てください。

・コメントの表示を変える場合
コメント投稿日時表示タグ(例えば{comment_time})を以下のように変える、または追加してください。
<span class="some_days_ago">{comment_time_24}</span>
コメントの表示に関するJUGEM独自タグは、コメントの表示に関するタグを見てください。

・トラックバックの表示を変える場合
トラックバック投稿日時表示タグ(例えば{trackback_time})を以下のように変える、または追加してください。
<span class="some_days_ago">{trackback_time_24}</span>
トラックバックの表示に関するJUGEM独自タグは、トラックバックの表示に関するタグを見てください。


最後にスクリプトのコピー&ペーストです。
以下のスクリプトを、</body>タグのすぐ上に貼り付けてください。
<script type="text/Javascript">
<!--
// some days ago 表示スクリプト ver.1.0
// by melrose.jugem.cc

// 日付を囲むタグ
var someDaysAgoTagName = 'span';

// 日付を囲むタグのclass属性
var someDaysAgoClassName = 'some_days_ago';

// 1分以内の場合の表示(分)
var someDaysAgoMinutes = '$SOME$ minutes ago';

// 1分以上前の場合の表示(時間)
var someDaysAgoHours = '$SOME$ hours ago';

// 24時間以上前の場合の表示(日)
var someDaysAgoDays = '$SOME$ days ago';


// 日付形式
var someDaysAgoRegExp = '(¥¥d¥¥d¥¥d¥¥d).+(¥¥d¥¥d).+(¥¥d¥¥d).+(¥¥d¥¥d):(¥¥d¥¥d)';

function changeSomeDaysAgo() {
var d = document;
var dateHTML;
var dateObj = new Array();
var allElements = d.all && d.all.tags(someDaysAgoTagName) || d.getElementsByTagName && d.getElementsByTagName(someDaysAgoTagName);
var l = allElements.length
for( var i = 0; i<l; i++) {
if(allElements[i].className == someDaysAgoClassName) {
dateObj[dateObj.length] = allElements[i];
}
}

var dateObjNum = dateObj.length;
var nowDate = new Date();
var entryDate;
var reg = new RegExp(someDaysAgoRegExp, "ig");
for (var i = 0;i < dateObjNum; i++) {
dateHTML = dateObj[i].innerHTML;
if (dateHTML.match(reg)) {
entryDate = new Date(RegExp.$1 ,RegExp.$2 - 1 ,RegExp.$3, RegExp.$4, RegExp.$5, 0);
times = nowDate.getTime() - entryDate.getTime();
days = Math.floor(times / (1000*60*60*24));
hours = Math.floor(times / (1000*60*60));
minutes = Math.floor(times / (1000*60));
if (days > 0) {
dateObj[i].innerHTML = someDaysAgoDays.replace('$SOME$', days);
}
else if (hours > 0) {
dateObj[i].innerHTML = someDaysAgoHours.replace('$SOME$', hours);
}
else {
minutes = (minutes < 0) ? 0 : minutes;
dateObj[i].innerHTML = someDaysAgoMinutes.replace('$SOME$', minutes);
}
}
}
}
changeSomeDaysAgo();
// -->
</script>


以上で設置完了です。
カスタマイズ(blog) | permalink | comments(2) | trackbacks(0) | ↑top
Clip!! | Ranking |

  スポンサーサイト

- | permalink | - | - | ↑top
Clip!! | Ranking |

  Comment List
こちらでは初めましてですね。
以前、Super Mario Bros. 2.5Dの記事でトラックバックさせていただいたものです。

このスクリプト、かっこいいので早速テンプレートに組み込もうと思ったのですが、KHTMLエンジンを使うブラウザ、例:Safari(2.0.4)からみると、必ず「Posted NaN minutes ago.」と表示され、うまく動作しません。

Safariでは、このスクリプトは動作できないのでしょうか??[:フッ:]
yudaiさん | 2006/07/08 19:37
管理者の承認待ちコメントです。
-さん | 2009/11/15 14:19

  Comment









  Trackback URL
 

  Trackback
Home  |  Selected Entries  |  Recent Comments  |  Recent Trackback  |  Categories  |  Archives  |  bbs