一:实例化
1 获取系统当前时间即创建日期对象
const date = new Date()
console.log(date)
2024年6月5日周三
2 获取指定的时间
以获取2025年6月29日为例
const date = new Date('2025-6-29')
console.log(date)
二:日期对象方法
1 使用场景:
日期对象返回数据如上图,无法直接使用;因此要利用日期对象方法,转化成可以使用的格式
2 具体方法如下:
注:
getDay()中,星期天是数字0,而不是7
getMonth(),获取的月份要加1,才是正常月份显示
3 显示当前时间案例
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div></div><script>function getDate() {const date = new Date()let h = date.getHours()let m = date.getMinutes()let s = date.getSeconds()h = h < 10 ? 0 + h : hm = m < 10 ? 0 + m : ms = s < 10 ? 0 + s : sreturn `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDay()} ${h}:${m}:${s}`}const div = document.querySelector('div')//避免页面刷新,留下的空白div.innerHTML = getDate()setInterval(function () {div.innerHTML = getDate()}, 1000)</script>
</body></html>
三:时间戳
1 什么是时间戳
指1970年01月01日00时00分00秒起至现在的毫秒数,它是一种特殊的计量时间的方式
最典型的应用场景:倒计时计算
2 倒计时算法
将来时间戳-现在时间戳 = 剩余时间毫秒数
剩余时间毫秒数 转换为 剩余时间的年月日时分秒 就是倒计时时间
3 获取时间戳的方式
1 const date = new Date()
date.getTime()
2 +new Date()
//既可以返回当前的时间戳,也可以返回指定时间的时间戳
3 Date.now()
//只能得到当前的时间戳,而且前面两种可以返回指定时间的时间戳
四:案例倒计时效果
案例分析
思路:
倒计时算法
注意点:
1 通过时间戳得到的是毫秒,需要转换为秒在计算
2 转换公式:
d = parseInt(总秒数/60/60/24)//天数
h = parseInt(总秒数/60/60%24)//小时
m = parseInt(总秒数/60%60)//分数
s = parseInt(总秒数%60)//当前秒数
3 setInterval(函数名,秒数)
函数名不加小括号
样式:
代码:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.countdown {width: 240px;height: 305px;text-align: center;line-height: 1;color: #fff;background-color: brown;/* background-size: 240px; *//* float: left; */overflow: hidden;}.countdown .next {font-size: 16px;margin: 25px 0 14px;}.countdown .title {font-size: 33px;}.countdown .tips {margin-top: 80px;font-size: 23px;}.countdown small {font-size: 17px;}.countdown .clock {width: 142px;margin: 18px auto 0;overflow: hidden;}.countdown .clock span,.countdown .clock i {display: block;text-align: center;line-height: 34px;font-size: 23px;float: left;}.countdown .clock span {width: 34px;height: 34px;border-radius: 2px;background-color: #303430;}.countdown .clock i {width: 20px;font-style: normal;}</style>
</head><body><div class="countdown"><p class="next">今天是2222年2月22日</p><p class="title">下班倒计时</p><p class="clock"><span id="hour">00</span><i>:</i><span id="minutes">25</span><i>:</i><span id="second">20</span></p><p class="tips">18:30:00下课</p></div><script>function getTime() {//得到当前时间戳const now = +new Date()//得到将来时间戳const future = +new Date("2024-6-5 21:00:00")// console.log(now, future);const sy = (future - now) / 1000let h = parseInt(sy / 60 / 60 % 24)//小时let m = parseInt(sy / 60 % 60)//分数let s = parseInt(sy % 60)//当前秒数h = h >= 10 ? h : '0' + hm = m >= 10 ? m : '0' + ms = s >= 10 ? s : '0' + sdocument.querySelector('#hour').innerHTML = hdocument.querySelector('#minutes').innerHTML = mdocument.querySelector('#second').innerHTML = s}//避免页面存在数字影响getTime()//定时器中函数不加小括号,只写函数名setInterval(getTime, 1000)</script>
</body></html>