// ==UserScript==
// @name           Hatena Diary: append datetime to ins/del
// @namespace      http://lowreal.net
// @include        http://d.hatena.ne.jp/*
// @include        http://*.g.hatena.ne.jp/*
// ==/UserScript==


location.href = "javascript:"+encodeURIComponent(uneval(function () {
	if ( !(Hatena && Hatena.Diary && Hatena.Diary.Section) ) return;

	var orig_update = Hatena.Diary.Section.prototype.update;
	Hatena.Diary.Section.prototype.update = function (data, obj, meth) {
		if (data.body) {
			data.body = data.body.replace(/<(ins|del)>/g, function (_, n) {
				return &#39;<&#39; + n + &#39; datetime="&#39; + w3cdtf(new Date) + &#39;">&#39;;
			});
		}
		orig_update.apply(this, arguments);
	};

	function w3cdtf (d) {
		var date =[
			String(10000 + d.getFullYear() ).slice(1),
			String(  100 + d.getMonth() + 1).slice(1),
			String(  100 + d.getDate()     ).slice(1)
		].join("-");

		var time = [
			String(  100 + d.getHours()   ).slice(1),
			String(  100 + d.getMinutes() ).slice(1),
			String(  100 + d.getSeconds() ).slice(1)
		].join(":");

		var offset = d.getTimezoneOffset();
		var plsmns = (offset < 0) ? "+" : "-", offset = Math.abs(offset);
		var zone   = plsmns + String(100 + offset / 60).slice(1) + ":" + String(100 + offset % 60).slice(1);

		return date + "T" + time + zone;
	}
}))+"()";

コレ、どこに載ってたんだっけ?


追記:ここだった。

http://coderepos.org/share/browser/lang/javascript/userscripts/hatena.diary.appendinsdeldatetime.user.js?

その場編集だとつけてくれないのでかいた。( http://i.hatena.ne.jp/idea/18897 )

http://subtech.g.hatena.ne.jp/cho45/20080409/1207672776