JavaScript Date对象实战:实时时钟、高考倒计时与限时抢购
作者:小括号时间:2026-10-22 09:37:12浏览:253
本文通过三个具体实例展示JavaScript Date对象的实际应用。首先实现秒数实时跳动的动态时钟,利用setTimeout控制刷新频率;其次演示高考倒计时功能,通过时间戳计算剩余天数;最后介绍限时抢购场景下的倒计时逻辑,精确到秒。代码包含HTML结构与JS逻辑,适合前端开发者参考学习。
JavaScript Date对象实战示例
本文通过三个具体实例展示JavaScript Date对象的实际应用,供读者参考学习。
实时跳动时钟实现
第一个实例演示如何获取当前日期和时间,并实现秒数的实时跳动效果。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>date01</title>
<style>
#date{
position: absolute;
font-size: 30px;
font-family: '微软雅黑';
top:50%;
left:50%;
-webkit-transform:translate(-50%,-50%);
}
</style>
</head>
<body>
<div id="date">2017.10.29</div>
<script>
window.onload = function(){
showTime();
}
//checkTime(i)对分钟和秒进行判断,如果小于10,在其前补0.
function checkTime(i){
return i < 10? "0"+i:i;
}
function showTime(){
var time = new Date();//日期对象
console.log("new Date :"+time);
var year_1 = time.getYear();//获得年份
console.log("getYear(): "+year_1);
var year_2 = time.getFullYear();//获得完整年份
console.log("getFullYear(): "+year_2);
var month = time.getMonth();//获得月份(0~11)
console.log("getMonth(): "+month);
var date = time.getDate();//获得日期(1~31)
console.log("getDate(): "+date);
var day = time.getDay();//星期几(0~6)
console.log("getDay(): "+day)
var hours = time.getHours();//小时(0~23)
console.log("getHours(): "+hours);
var min = time.getMinutes();//分钟(0~59)
console.log("getMinutes(): "+min);
var seconds = time.getSeconds();//秒
console.log("getSeconds(): "+seconds);
min = checkTime(min);
seconds = checkTime(seconds);
var weekday = new Array(7);
weekday[0] = "星期天";
weekday[1] = "星期一";
weekday[2] = "星期二";
weekday[3] = "星期三";
weekday[4] = "星期四";
weekday[5] = "星期五";
weekday[6] = "星期六";
var str_time = year_2 + "年" + (month+1) + "月" + date + "日" +" "+ weekday[day] +" "+ hours +":" + min +":" + seconds;
document.getElementById('date').innerHTML = str_time;
setTimeout(showTime,500);//每500ms执行一次,实现秒数实时跳动。
}
</script>
</body>
</html>
高考倒计时功能
第二个实例介绍高考倒计时功能,主要计算距离考试日期的剩余天数。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>date02</title>
<style>
#date{
position: absolute;
font-size: 30px;
font-family: '微软雅黑';
top:50%;
left:50%;
-webkit-transform:translate(-50%,-50%);
}
</style>
</head>
<body>
<div id="date">2017.10.29</div>
<script>
window.onload = function(){
var now = new Date();//获取当前时间
var timedate = new Date("2018,12,23");//截止时间
//getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数。
var date = timedate.getTime() - now.getTime();
//Math.ceil()向上取整
var time = Math.ceil(date/(24*60*60*1000));
document.getElementById('date').innerHTML = time;
}
</script>
</body>
</html>
限时抢购倒计时逻辑
第三个实例演示限时抢购场景下的倒计时逻辑,精确显示天、时、分、秒。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>date03</title>
<style>
#date{
position: absolute;
font-size: 30px;
font-family: '微软雅黑';
top:50%;
left:50%;
-webkit-transform:translate(-50%,-50%);
}
</style>
</head>
<body>
<div id="date">2017.10.29</div>
<script>
window.onload = function(){
showTime();
}
function checkTime(i){
return i < 10? "0"+i:i;
}
function showTime(){
var now = new Date();//获取当前时间
var timedate = new Date("2017/10/30,24:00:00");//截止时间
//getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数。
var leftTime = (timedate.getTime() - now.getTime())/1000;
var d = checkTime(parseInt(leftTime/(24*60*60)));
var h = checkTime(parseInt(leftTime/(60*60)%24));
var m = checkTime(parseInt(leftTime/60%60));
var s = checkTime(parseInt(leftTime%60));
var time = d + "天" + h + "小时" + m + "分钟" + s + "秒";
document.getElementById('date').innerHTML = time;
setTimeout(showTime,500);
}
</script>
</body>
</html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
作者最新文章
JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18
