JavaScript时间对象Date()

本文介绍了JavaScript中Date对象的使用,包括创建时间、获取年月日、时分秒以及星期的方法。同时,详细讲解了时间戳的概念,如何获取时间差,并提供了一个倒计时秒杀案例,展示了如何利用时间戳实现动态倒计时功能。
摘要由CSDN通过智能技术生成

本文章简单讲解一下Date()和时间戳,它可以用来创建时间,可以获取电脑本地的时间,可以计算时间差,并附上案例加深学习与应用。

目录

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')

效果如图:因为使用了间隔定时器,每过一秒都会发生改变。

 感谢您的阅读,求求点个赞吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊啊啊啊啊威

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值