一、效果展示

二、完整代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
.clock {
width: 300px;
height: 300px;
border: 10px solid darkgray;
border-radius: 50%;
margin: 0 auto;
margin-top: 200px;
background-color: lightgray;
position: relative;
}
.mark {
width: 10px;
height: 10px;
border-radius: 50%;
background-color: darkgray;
position: absolute;
}
.twe {
left: 145px;
top: 10px;
}
.thr {
top: 145px;
right: 10px;
}
.six {
left: 145px;
bottom: 10px;
}
.nine {
top: 145px;
left: 10px;
}
.center {
width: 20px;
height: 20px;
border-radius: 50%;
background-color: darkgray;
position: absolute;
left: 140px;
top: 140px;
}
.pointer {
position: absolute;
left: 150px;
transform-origin: 0;
}
.hour {
width: 100px;
height: 10px;
background-color: red;
top: 145px;
border-radius: 0 50% 50% 0;
}
.minute {
width: 120px;
height: 8px;
background-color: blue;
top: 146px;
border-radius: 0 50% 50% 0;
}
.second {
width: 140px;
height: 6px;
background-color: green;
top: 147px;
border-radius: 0 50% 50% 0;
}
.weekday {
width: 80px;
height: 20px;
position: absolute;
right: 20px;
top: 140px;
}
.weekday span {
margin: 3px;
background-color: white;
}
.time {
width: 66px;
height: 20px;
bottom: 25px;
left: 117px;
position: absolute;
background-color: white;
}
</style>
</head>
<body>
<div class="clock">
<div class="mark twe"></div>
<div class="mark thr"></div>
<div class="mark six"></div>
<div class="mark nine"></div>
<div class="weekday">
<span>5</span>
<span>日</span>
</div>
<div class="time">
23:23:23
</div>
<div class="pointer hour"></div>
<div class="pointer minute"></div>
<div class="pointer second"></div>
<div class="center"></div>
</div>
</body>
<script type="text/javascript">
var pointers = document.getElementsByClassName("pointer");
var weekday = document.getElementsByClassName("weekday")[0];
var day_span = document.getElementsByTagName("span")[0];
var week_span = document.getElementsByTagName("span")[1];
var time = document.getElementsByClassName("time")[0];
var clock = function() {
var timeNow = new Date();
var day = timeNow.getDate();
var week = timeNow.getDay();
var weeks = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
day_span.innerHTML = format(day);
week_span.innerHTML = weeks[week];
var h = timeNow.getHours();
var m = timeNow.getMinutes();
var s = timeNow.getSeconds();
time.innerHTML = format(h) + ":" + format(m) + ":" + format(s);
var rot_s = 6 * s - 90;
var rot_m = 6 * m + s * (1/10) - 90;
var rot_h = 30 * h + m * (1/2) - 90;
pointers[2].style.transform = "rotate(" + rot_s + "deg)";
pointers[1].style.transform = "rotate(" + rot_m + "deg)";
pointers[0].style.transform = "rotate(" + rot_h + "deg)";
}
clock();
setInterval(clock, 1000);
function format(e) {
return e > 9? e: "0" + e;
}
</script>
</html>