timestamp を挿入するブックマークレット

フォーカスが input か textarea にあるときはその最後にタイムスタンプを挿入し、それ以外ではタイムスタンプをプロンプトで出すブックマークレットを書いてみた。

シンプルな日時のものは、「2010-11-18 0:19」 という表示。

ISO 8601 は、「2010-11-17T15:20:17.694Z」 のような表示。
ISO 8601 版は、toISOString を使っているので、ECMAScript 5 に対応している Firefox, Google Chrome など最近のブラウザでのみ動作する。(IEは9以降?) タイムゾーンは、ECMAScript 5 の仕様で UTC のはず。ただしブラウザによってミリ秒があったりなかったり表記が変わる。

シンプル版

ブックマークレットの内容

(function(){
var d = new Date();
var dt = d.getFullYear() + '-'
    + (d.getMonth()+1) + '-'
    + d.getDate() + ' '
    + d.getHours() + ':'
    + d.getMinutes();
var e = (document.activeElement || window.getSelection().focusNode);
if (e && e.tagName.toLowerCase()=='textarea' || e.tagName.toLowerCase()=='input') {
   e.value = e.value + '' + dt;
} else {
  var x = prompt('', dt);
}
})();

ブックマークレット→ timestamp

ISO 8601 形式

ブックマークレットの内容

(function(){
var d = (new Date()).toISOString();
var e = (document.activeElement || window.getSelection().focusNode);
if (e && e.tagName.toLowerCase()=='textarea' || e.tagName.toLowerCase()=='input') {
  e.value = e.value + '' + d;
} else {
  var x = prompt('', d);
}
})();

ブックマークレット→ timestamp