本文章简单讲解一下Date()和时间戳,它可以用来创建时间,可以获取电脑本地的时间,可以计算时间差,并附上案例加深学习与应用。
目录
Date()
创建时间
使用Date()构造函数。
var d = new Date()
console.log(d);//时间对象.html:55 Tue Oct 25 2022 09:37:38 GMT+0800 (中国标准时间)
输出结果:
获取年月日
注意:获取的月份返回的是下标,所以需要加一。月份是一个数组存储着1到12月,我们使用时返回的是下标,所以需要+1来显示正常的月份。
//年
var y=d.getFullYear()
console.log(y);//2022
//月
// [1,2,3,4,5,6,7,8,9,10]
var m=d.getMonth()+1
console.log(m);//10
//日
var r=d.getDate()
console.log(r);//25
输出结果:
获取时分秒
//时
var h = d.getHours()
console.log(h);//
//分
var f = d.getMinutes()
console.log(f);//
//秒
var s = d.getSeconds()
console.log(s);//
输出结果:
获取星期
注意:一周的开始是周天,我们创建一个数组,数组内容就是星期几依次排列。然后按照下方代码来获取星期几。获取星期返回的同样是下标。
//星期返回的是下标
var x=d.getDay()
var week=['星期日','星期一','星期二','星期三','星期四','星期五','星期六']
console.log(week[x]);
输出结果:
电子时钟
所以结合以上代码,我们就可以输出当前的时间,年月日时分秒星期几。
function timer () {
var d = new Date()
var y = d.getFullYear()
var m = d.getMonth() + 1
var r = d.getDate()
var h = d.getHours()
var f = d.getMinutes()
var s = d.getSeconds()
var x = d.getDay()
var week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
var str = '现在是' + y + '年' + m + '月' + r + '日' + h + '时' + f + '分' + s + '秒' + week[x]
return str
}
console.log(timer());
输出结果:
时间戳
从1970年1月1日早上8点开始算到现在的毫秒数。
创建创建戳
有两种方法,一种是直接使用Date.now(),另一种是创建时间对象var d=new Date(),然后d.getTime()。
注意:Date.now()在ie8浏览器以下不兼容。
var d=new Date()
console.log(d.getTime());
console.log(Date.now());//ie8以下的浏览器不兼容
输出结果:
得到时间差
依照时间戳的特性,我们可以使用 new Date('年/月/日 时:分:秒') 或者 new Date(年, 月-1, 日, 时, 分, 秒) 得到从1970年1月1日早上8点到某一个时间点的毫秒数。
这样我们可以得到多个时间点的时间戳,这些时间戳相减得到的毫秒数,就是两个时间的时间差。
如下代码,有两种格式。引号括起来的,写正常的时间,逗号隔开的格式需要把月份-1。
var d = new Date('2023/11/11 8:0:0')//正常传入,2023年11月11日8点
var c = new Date(2023, 10, 11, 8, 0, 0)//也是2023年11月11日8点,但月份要-1
console.log(d.getTime());
console.log(c.getTime());
输出结果:
倒计时秒杀案例
平常我们经常看到倒计时的案例,比如说淘宝双十一的时候倒计时,春节倒计时等等。
根据时间戳的特性,在配合间隔定时器,我们可以计算出现在到今年双十一的时间差,对毫秒进行处理,将其转化为天数和时分秒,也做出一个简单的倒计时效果。
代码如下:
function timer(n) {
var miao1 = setInterval(function () {//间隔定时器
var con = document.getElementById('con')
var day11 = new Date(n)//预定的时间,以参数的形式传进来
var daynow = new Date()//现在的时间
var cha = day11 - daynow//二者的时间差,毫秒
cha = cha / 1000//毫秒化成秒
var day = parseInt(cha / 60 / 60 / 24);//天
day = day < 10 ? '0' + day : day;//小于10前面补零
var hour = parseInt(cha / 60 / 60 % 24);//时
hour = hour < 10 ? '0' + hour : hour;
var minute = parseInt(cha / 60 % 60);//分
minute = minute < 10 ? '0' + minute : minute;
var second = parseInt(cha % 60);//秒
second = second < 10 ? '0' + second : second;
con.innerHTML = '距离双十一还有' + day + '天' + hour + '小时' + minute + '分钟' + second + '秒'
if (res <= 0) {
// clearInterval(miao1)
con.innerHTML = '双十一开始啦,快来剁手啊!'
return
}
}, 1000)
}
timer('2023/11/11 0:0:0')
效果如图:因为使用了间隔定时器,每过一秒都会发生改变。
感谢您的阅读,求求点个赞吧。