HTML页面显示时间——网页数字时钟、钟表
一个HTML网页上动态显示系统时间,可以使用javascript的Date对象,在javascript中new 一个date对象,并且根据这个date对象获取相应的时间日期的具体日期时间,比如 年 月 日 时分秒,星期等信息。
下面从简单到复杂给出一些示例。
示例1,效果如下:
源码如下:
<html>
<head>
<meta charset="UTF-8">
<title>实时显示系统时间B</title><script>function getD1(){var date=new Date();var d1=date.toLocaleString();document.getElementById("datetime").innerHTML =d1; }setInterval("getD1();",1000);</script>
</head>
<body onload = getD1()>
<div id="datetime">/div></body>
</html>
示例2,效果如下:
源码如下:
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>实时显示系统时间C</title>
<script>var i=0;function myDate(){var now=new Date();var year=now.getFullYear();var month=now.getMonth()+1;var day=now.getDate();var hours=now.getHours();var minutes=now.getMinutes();var seconds=now.getSeconds();document.getElementById("div").innerHTML=year+"年"+month+"月"+day+"日"+hours+":"+minutes+":"+seconds;}setInterval(myDate,1000);
</script>
</head>
<body>
<div id="div"></div>
</body>
</html>
示例3,效果如下:
源码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>动态时钟</title>
<style>
#clock{margin:100px auto;border: 5px double green;width: 400px;height: 100px;line-height: 100px;text-align: center;font: bold;color: red;
}
</style>
<script>
function showTime(clock){var now = new Date();var year = now.getFullYear();var month= now.getMonth();var day = now.getDate();var hour = now.getHours();var minu = now.getMinutes();var second = now.getSeconds();month = month+1;var arr_work = new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");var week = arr_work[ now.getDay()];var time = year+"年"+month+"月"+day+"日 "+ week+" "+hour+":"+minu+":"+second;clock.innerHTML="当前时间: "+time;
}
window.onload = function(){var clock = document.getElementById("clock");window.setInterval("showTime(clock)",1000);}
</script>
</head>
<body>
<div id ="clock"></div>
</body>
</html>
示例4,效果如下:
源码如下:
<!DOCTYPE html>
<html><head><meta charset=UTF-8"><title>动态显示当前时间的钟表</title></head><style>canvas{border: 1px solid black;}</style><script>(function(){//cavas元素对象var canvas=null;//canvas的3d上下文var ctx=null;//cavan的尺寸var cw=0;var ch=0;/*** 页面导入时的事件处理*/window.addEventListener("load",function(){canvas=document.getElementById("sample");ctx=canvas.getContext("2d");cw=parseInt(canvas.width);ch=parseInt(canvas.height);ctx.translate(cw/2, ch/2);//绘制时钟draw_watch();},false); /*** 绘制时钟*/function draw_watch(){//清空Canvasctx.clearRect(-cw/2,-ch/2,cw,ch);//计算针的最大长度var len=Math.min(cw, ch)/2;//绘制刻度盘var tlen=len*0.85;ctx.font="14px 'Arial'";ctx.fillStyle="black";ctx.textAlign="center";ctx.textBaseLine="middle";for(var i=1; i<=12; i++){var tag1=Math.PI*2*(3-i)/12;var tx=tlen * Math.cos(tag1);var ty=-tlen * Math.sin(tag1);ctx.fillText(i,tx,ty);}//获取当前的时分秒var d=new Date();var h=d.getHours();var m=d.getMinutes();var s=d.getSeconds();if(h >12 ){h=h-12;}//绘制时针var angle1 = Math.PI * 2 *(3 - (h+ m/60))/12;var length1=len * 0.5;var width1=5;var color1="#000000";drawhand(angle1,length1,width1,color1);//绘制分针var angle2 = Math.PI * 2 *(15 - (m+ s/60))/60;var length2=len * 0.7;var width2=3;var color2="#555555";drawhand(angle2,length2,width2,color2);//绘制秒针var angle3 = Math.PI * 2 *(15 - s)/60;var length3=len * 0.8;var width3=1;var color3="#aa0000";drawhand(angle3,length3,width3,color3);//设置timersetTimeout(draw_watch,1000);}/*** 针绘制函数*/function drawhand(angle,len,width,color){//计算针端的坐标var x=len*Math.cos(angle);var y=-len * Math.sin(angle);//绘制针ctx.strokeStyle=color;ctx.lineWidth=width;ctx.lineCap="round";ctx.beginPath();ctx.moveTo(0,0);ctx.lineTo(x,y);ctx.stroke();}})();</script><body><canvas id="sample" width="150" height="150"></canvas></body>
</html>
示例5,效果如下:
源码如下:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>canvas_time</title><style type="text/css">div {text-align: center;margin-top: 50px;}#clock {border: 1px solid #cccccc;}</style>
</head>
<body><div><canvas id="clock" height="300px" width="300px"></canvas></div><script type="text/JavaScript" >
var dom = document.getElementById('clock');
var ctx = dom.getContext('2d');
var width = ctx.canvas.width;
var height = ctx.canvas.height;
var r = width / 2;
var rem = width/200;
function drawBackground() {ctx.save(); //存储当前环境变量;ctx.translate(r, r); //重置坐标到r,rctx.beginPath(); // 起始一条路径ctx.lineWidth = 10*rem; //设置线宽10;ctx.arc(0, 0, r - ctx.lineWidth /2, 0, 2 * Math.PI, false);ctx.stroke();var hourNumbers = [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2]; //定义数组ctx.font = 18*rem+"px Arial";ctx.textAlign = "center";ctx.textBaseline = "middle";hourNumbers.forEach(function(number, i) {var rad = 2 * Math.PI / 12 * i;var x = Math.cos(rad) * (r - 30*rem);var y = Math.sin(rad) * (r - 30*rem);ctx.fillText(number, x, y);});for (var i = 0; i < 60; i++) {var rad = 2 * Math.PI / 60 * i;var x = Math.cos(rad) * (r - 18*rem);var y = Math.sin(rad) * (r - 18*rem);ctx.beginPath();if (i % 5 === 0) {ctx.arc(x, y, 2*rem, 0, 2 * Math.PI, false);ctx.fillStyle = "#000";} else {ctx.arc(x, y, 2*rem, 0, 2 * Math.PI, false);ctx.fillStyle = "#ccc";}ctx.fill();}
}function drawHour(hour, minute) {ctx.save();ctx.beginPath();var rad = 2 * Math.PI / 12 * hour;var mrad = 2 * Math.PI / 12 / 60 * minute;ctx.rotate(rad + mrad);ctx.lineWidth = 6*rem;ctx.lineCap = "round";ctx.moveTo(0, 10*rem);ctx.lineTo(0, -r / 2);ctx.stroke();ctx.restore();}function drawMinute(minute) {ctx.save();ctx.beginPath();var rad = 2 * Math.PI / 60 * minute;ctx.rotate(rad);ctx.lineWidth = 3*rem;ctx.lineCap = "round";ctx.moveTo(0, 10*rem);ctx.lineTo(0, -r + 30*rem);ctx.stroke();ctx.restore();}function drawSecond(second) {ctx.save();ctx.beginPath();ctx.fillStyle = 'red';var rad = 2 * Math.PI / 60 * second;ctx.rotate(rad);ctx.moveTo(-2*rem, 20*rem);ctx.lineTo(2*rem, 20*rem);ctx.lineTo(1, -r + 16*rem);ctx.lineTo(-1, -r + 16*rem);ctx.fill();ctx.restore();}function drawDot() {ctx.beginPath();ctx.fillStyle = '#fff';ctx.arc(0, 0, 3*rem, 0, 2 * Math.PI, false);ctx.fill();}function draw01() {ctx.clearRect(0, 0, width, height);var now = new Date();var hour = now.getHours();var minute = now.getMinutes();var second = now.getSeconds();drawBackground();drawHour(hour, minute);drawMinute(minute);drawSecond(second);drawDot();ctx.restore();}draw01();setInterval(draw01, 1000);
</script>
</body>
</html>
示例6,效果如下:
源码如下:
<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>带日期的时钟</title><style>h1 {text-align: center;}div {width: 400px;height: 400px;margin: 10px auto;padding: 0;}</style></head><body><div><canvas id="c1" width="400px" height="400px"></canvas></div><script type="text/javascript">var clock = document.getElementById("c1").getContext("2d");// var clock = $("#huabu").get(0).getContext("2d"); //$中使用画布function play() {clock.clearRect(0, 0, 400, 400);clock.save();clock.translate(200, 200); //把画布中心转移到canvas中间biaopan();run();clock.restore();}setInterval(function() {play();}, 1000);function biaopan() {//绘制表盘clock.strokeStyle = " #9932CC";clock.lineWidth = 5;clock.beginPath();clock.arc(0, 0, 195, 0, 2 * Math.PI);clock.stroke();//刻度(小时)clock.strokeStyle = "#9932CC";clock.lineWidth = 5;for(var i = 0; i < 12; i++) {clock.beginPath();clock.moveTo(0, -190);clock.lineTo(0, -170);clock.stroke();clock.rotate(2 * Math.PI / 12);}//刻度(分钟)clock.strokeStyle = "#9932CC";clock.lineWidth = 3;for(var i = 0; i < 60; i++) {clock.beginPath();clock.moveTo(0, -190);clock.lineTo(0, -180);clock.stroke();clock.rotate(2 * Math.PI / 60);}//绘制文字clock.textAlign = "center";clock.textBaseline = "middle";clock.fillStyle = "#6495ED";clock.font = "20px 微软雅黑"for(var i = 1; i < 13; i++) {clock.fillText(i,Math.sin(2*Math.PI /12*i)*150,Math.cos(2*Math.PI/12*i)*-150);}}function run() {var date = new Date();var h = date.getHours();var m = date.getMinutes();var s = date.getSeconds();
// if(h > 12) {
// h = h - 12;
// }//日期var week = date.getDay();var month = date.getMonth() + 1;var day = date.getDate();switch (week){case 1: week = "星期一";break;case 2: week = "星期二";break;case 3: week = "星期三";break;case 4: week = "星期四";break;case 5: week = "星期五";break;case 6: week = "星期六";break;default: week = "星期天";break;}clock.save();clock.textAlign = "center";clock.textBaseline = "middle";clock.fillStyle = "black";clock.font = "16px"clock.fillText(week,-2,-118);clock.fillText(month+" 月",-90,2);clock.fillText(day+" 号",90,0);clock.stroke();clock.restore();//时针//分针60格 分针5格 clock.save();clock.rotate(2 * Math.PI / 12 * h + (2 * Math.PI / 60 * m + 2 * Math.PI / 60 * s / 60) / 12);clock.strokeStyle = "black";clock.lineWidth = 7;clock.beginPath();clock.moveTo(0, 0);clock.lineTo(0, -80);clock.lineCap = "round";clock.stroke();clock.restore();//分针//秒针60格 分针一格clock.save();clock.beginPath();clock.strokeStyle = "#D2691E";clock.lineWidth = 5;clock.rotate(2 * Math.PI / 60 * m + 2 * Math.PI / 60 * s / 60);clock.moveTo(0, 0);clock.lineTo(0, -110);clock.lineCap = "round";clock.stroke();clock.restore();//秒针clock.strokeStyle = "red";clock.rotate(2 * Math.PI / 60 * s);clock.lineWidth = 4;clock.beginPath();clock.moveTo(0, 0);clock.lineTo(0, -120);clock.lineCap = "round";clock.stroke();//中心clock.fillStyle = " #CCFFFF";clock.lineWidth = 5;clock.beginPath();clock.arc(0, 0, 10, 0, 2 * Math.PI);clock.fill();clock.strokeStyle = "cadetblue";clock.stroke();}</script></body></html>
OK!