2009/10/03(土)twittime.user.js
1時間前っていつよ?
twitter を web から使っていると、「1時間前」などという表記がアバウトすぎて、逆にいらいらするので表示を日時にしてくれるブックマークレット UserJSにした
導入すると、「約3時間前 webで」が「10/03 20:40 [2時間58分前] webで」みたいになります。
Opera10 のみ動作確認。
twittime.user.js
保存されるときは文字コード(UTF-8で!)にお気をつけください。
// ==UserScript==
// @name Twittime
// @namespace http://tu3.jp/
// @include http://twitter.com/*
// ==/UserScript==
function twittimeUpdate() {
if(window.getSelection().rangeCount > 0) return;
var entries = document.getElementsByClassName("published timestamp");
for(var i=0; i<entries.length; i++)
{
var nowDate = new Date();
var pubDate = new Date(entries[i].getAttribute("data").split(/'/)[1]);
var dta = new Array(pubDate.getFullYear(), pubDate.getMonth()+1, pubDate.getDate(), pubDate.getHours(), pubDate.getMinutes(), pubDate.getSeconds());
var pDate = (nowDate.getFullYear() != dta[0] ? dta[0]+"/" : "") + dta[1]+"/"+(dta[2]<10?"0":"")+dta[2];
var pTime = dta[3]+":"+(dta[4]<10?"0":"")+dta[4];
var deltaStr;
var deltaSec = (nowDate.getTime() - pubDate.getTime())/1000;
var dsa = new Array(Math.floor(deltaSec/86400), Math.floor(deltaSec%86400/3600), Math.floor(deltaSec%3600/60), Math.floor(deltaSec%60));
if (deltaSec < 60) deltaStr = "" + dsa[3] + "秒前";
else if(deltaSec < 3600) deltaStr = "" + dsa[2] + "分" + (dsa[3]<10?"0":"")+dsa[3] + "秒前";
else if(deltaSec < 86400) deltaStr = "" + dsa[1] + "時間" + (dsa[2]<10?"0":"")+dsa[2] + "分前";
else deltaStr = "" + dsa[0] +"日"+(dsa[1]<10?"0":"")+dsa[1]+"時間前";
entries[i].innerHTML = pDate + " " + pTime + " ["+deltaStr+"]";
}
}
setInterval("twittimeUpdate()",1000);