個人的に、時計は時間がデジタルで分針と秒針はアナログのほうが見やすいと思うので、試しに作ってみた。デジタルは13:49って見ても、すぐにもうすぐ14時かー、って思いづらいので。

[code lang=javascript]
function draw(){
var canvas = document.getElementById("tokei2");

if(!canvas || !canvas.getContext) return false;
var ctx = canvas.getContext('2d');

ctx.globalCompositeOperation = "source-over";

ctx.fillStyle='rgb(255,255,255)';
ctx.fillRect(0,0,640,640);

// background
ctx.fillStyle='rgb(0,0,0)';
ctx.fillRect(10,10,620,620);

ctx.fillStyle='rgb(255,255,255)';

var d = new Date();

//ctx.globalCompositeOperation = "destination-out";
ctx.fillStyle='rgb(255,255,255)';
ctx.beginPath();
ctx.arc(320,320,300,-Math.PI/2,-Math.PI/2+2*Math.PI*(60000*d.getMinutes()+1000*d.getSeconds()+d.getMilliseconds())/3600000,false);
ctx.lineTo(320,320);
ctx.closePath();
ctx.fill();

ctx.strokeStyle='rgb(255,255,255)';
ctx.beginPath();
ctx.arc(320,320,300,0,2*Math.PI,false);
ctx.closePath();
ctx.stroke();

ctx.fillStyle='rgb(255,0,0)';
ctx.save();
ctx.translate(320,320);
ctx.rotate(2*Math.PI*(1000*d.getSeconds()+d.getMilliseconds())/60000);
ctx.fillRect(-2,0,4,-250);
ctx.restore();

ctx.beginPath();
ctx.arc(320,320,20,0,2*Math.PI,false);
ctx.closePath();
ctx.fill();

ctx.fillStyle='rgb(0,100,255)';
ctx.font='bold 320px "Unknown Font", sans-serif';
ctx.textAlign="center";
ctx.textBaseline="middle";
ctx.fillText(d.getHours(),320,320,600)
};

onload = function(){
setInterval(draw,30);
};
[/code]