How to Make an Analogue Clock with the HTML5 Canvas and Javascript
Basics of the HTML5 Canvas

Further improvements:

I do not for one moment suggest that this clock is perfect. It's what I use and it suits my needs, but if you want to improve it, why not consider making it possible to add all the numbers from 1 to 12 to the clock face, or how about creating fancy shaped hands. Or even, how would a clock that's not round work? There are lots of additional things that could be done here to make it even more versatile.

Further reading:

Througout this tutorial I have linked extensively to W3Schools where you can find a full and comprehensive reference to the HTML canvas and its functions. However, if you are keen to dig deeper, may I suggest the following:

This ridiculously well-presented description of the canvas from 'Dive Into HTML5' which includes fully explained examples of the remarkable things that a canvas can do.

This alternative approach to drawing an analogue clock from Lyndon Armitage (although there are many similarities in the core of how its accomplished)

A history of clocks from Wikipedia.