曜日表示JavaScript(秒表示対応版)

2004年9月10日から、2ちゃんねるの投稿日付データに秒が表示されました。
これは、荒らし対策の一環で荒らしのIPアドレスの特定を容易にするために導入されたようです。

◆新機能をねだるスレ@運用情報◆
http://qb5.2ch.net/test/read.cgi/operate/1090875736/169
より
169 名前:FOX ★ 投稿日: 04/09/10 14:28:29 ID:???
秒表示してみた。

目的、規制議論板での芋掘り精度を上げるため。

そのため、今までの曜日表示対応JavaScript(双葉さんのところで例示・配布されているもの)を使っていると、時刻の分と秒の間にスペース一個分の空白が入ってしまいます。

1 名前:動け動けウゴウゴ2ちゃんねる 投稿日: 04/09/10 (金) 16:41 :53 ID:AIbufq0u
見づれーし意味ねーし必要ねーし。
いますぐ秒を無くせ。

また、双葉さんのところで例示されているJavaScriptを使うと、削除跡(あぼーん)やスレスト、1000レス到達したあとに表示されるメッセージの日付部分に(undefined)というメッセージが現れます。

157 名前:あぼーん 投稿日:あぼーん (undefined)

3 名前:停止しました。。。 投稿日:停止 (undefined)

1001 名前:1001 投稿日:Over 1000 (undefined) Thread

これらを回避するためには、JavaScriptを以下のように変更してください。
やり方は双葉さんのものと同様に、「Header.htm」をエディタ等で開いて下記のものを最後に追加して下さい。
なおコピペしても「<>」が「&lt;&gt;」に置き変わってしまう場合は
このページのソースをみて(右クリックで、「ソースの表示」を選択)コピペしてください。
それと、行末にスペースが入ってしまった場合はそれを全て削除してください。

●曜日を表示させるためのJavaScript

[Header.htmに挿入]
<script>
// 日付の西暦四桁・曜日表示
function get_day(arg_date,mode)
{
// 曜日入りや日付以外はそのまま返す mode <= 1のみ対応
if ((arg_date.indexOf('(') >= 0) || (arg_date.indexOf('/') == -1)) {return arg_date;}
// 曜日無し、西暦2桁表示(だと思われる。2000〜2099決め打ち)
else if (arg_date.charAt(2) == '/') {return get_day_2ch(arg_date,mode,"20",1);}
//その他(曜日無し、西暦四桁)だと思われる
else {return get_day_2ch(arg_date.substr(2),mode,arg_date.substr(0,2),1);}
}
// 日付表示サブ
function get_day_2ch(arg_date,mode,top2,year)
{
// 日付・時間・IDをスペース区切りで判断
var hdt = arg_date.split(" ");
var date = hdt[0];
if (hdt.length > 1) {date = hdt[0] + " " + hdt[1];}
var id = arg_date.substr(date.length); // IDだけとは限らない
// IDが無ければ
if ((mode <= 1) && (id.length == 0)) {mode += 2;}
var date_string;
var d = new Date(top2 + date); // 21世紀中は使える
var youbi = new Array("日","月","火","水","木","金","土");
// 日付でなければ
if (!youbi[d.getDay()]) {mode = 7;}
switch (mode) {
case 0: // "年/月/日 (曜日) 時:分 ID" 形式
date_string = (hdt[0] + " (" + youbi[d.getDay()] + ") " + hdt[1] + " " + id); break;
case 1: // "年/月/日 時:分 (曜日) ID" 形式
date_string = (date + " (" + youbi[d.getDay()] + ") " + id); break;
case 2: // "年/月/日 (曜日) 時:分" 形式
date_string = (hdt[0] + " (" + youbi[d.getDay()] + ") " + hdt[1]); break;
case 3: // "年/月/日 時:分 (曜日)" 形式
date_string = (date + " (" + youbi[d.getDay()] + ")"); break;
case 4: // 曜日のみ
date_string = youbi[d.getDay()]; break;
case 5: // 日付のみ
date_string = date; break;
case 6: // IDのみ
date_string = id; break;
case 7: // 日付+ID のみ,「壊れてます」などの日付以外対策にも
date_string = (date + id); break;
default:
date_string = arg_date;
}
// 西暦を四桁にする
if (year == 1) {date_string = top2 + date_string;}
return date_string;
}
</script>


[Res.htm・NewRes.htm用(&DATEと置き換える)]
<script>
document.write(get_day('&DATE',0)); // これはcase0
// ↑の数字を変えてね
</script>


case0,1でIDあり、2,3でなし。case4〜6はカスタムスキン用。

なお、西暦を2桁で表示したいときには

// 曜日無し、西暦2桁表示(だと思われる。2000〜2099決め打ち)
else if (arg_date.charAt(2) == '/') {return get_day_2ch(arg_date,mode,"20",1);}
//その他(曜日無し、西暦四桁)だと思われる
else {return get_day_2ch(arg_date.substr(2),mode,arg_date.substr(0,2),1);}

の部分の10に変更してください。

面倒くさい人や、やり方がイマイチわからない人は、
「組み込み済みスキン」を用意しましたので、
ダウンロードして解凍(lha圧縮)して使ってください。
このスキンは背景色2chカラー、IE5.5でのモナーの目の対策、
およびcase0の曜日表示対応、西暦2桁を4桁表示化に対応のものです。
#このスキンは、双葉さんのところで配布されているものを改造したものです。

Special Thanks To
かちゅ〜しゃ非公式FAQ&TIPS@双葉さん
旧・かちゅ〜しゃ板「かちゅ〜しゃをカスタマイズする其の2」スレの452さん
AzLuckyさんによるスクリプト改善版

TOPに戻る|