# Canvas Clock Hands

## Part IV - Draw Clock Hands

The clock needs hands. Create a JavaScript function to draw clock hands:

### JavaScript:

function drawClock() {
}

const now = new Date();
let hour = now.getHours();
let minute = now.getMinutes();
let second = now.getSeconds();
//hour
hour = hour%12;
hour = (hour*Math.PI/6)+(minute*Math.PI/(6*60))+(second*Math.PI/(360*60));
//minute
minute = (minute*Math.PI/30)+(second*Math.PI/(30*60));
// second
second = (second*Math.PI/30);
}

function drawHand(ctx, pos, length, width) {
ctx.beginPath();
ctx.lineWidth = width;
ctx.lineCap = "round";
ctx.moveTo(0,0);
ctx.rotate(pos);
ctx.lineTo(0, -length);
ctx.stroke();
ctx.rotate(-pos);
}
Try it Yourself »

## Example Explained

Create a Date object to get hour, minute, second:

const now = new Date();
let hour = now.getHours();
let minute = now.getMinutes();
let second = now.getSeconds();

Calculate the angle of the hour hand, and draw it a length (50% of radius), and a width (7% of radius):

hour = hour%12;
hour = (hour*Math.PI/6)+(minute*Math.PI/(6*60))+(second*Math.PI/(360*60));

Use the same technique for minutes and seconds.

The drawHand() routine does not need an explanation. It just draws a line with a given length and width.

W3Schools' Full Canvas Reference

×

## Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com