JavaScript时间对象详解,配合案例讲解

本文深入探讨JavaScript中的时间对象,通过实例演示如何获取年月日、时分秒、星期以及创建倒计时秒杀功能。内容涵盖Date构造函数、时间戳计算以及相关方法的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文章将会讲解JavaScript里面的时间对象,在讲解中配合案例来加深大家的理解。

时间对象可以用来创建时间,可以获取电脑本地的时间,可以计算时间差。

目录

创建时间

案例:获取年月日

案例: 获取时分秒

 案例:获取星期几

案例:电子时钟

 时间戳

创建创建戳

时间戳举例:

倒计时秒杀案例


创建时间

使用Date()构造函数

var d = new Date()

console.log(d);

打印结果:

  

打印出来的,是现在的时间.Wed Oct 26 2022 09:01:40 GMT+0800 (GMT+08:00) (中国标准时间)

所以我们可以使用new Date()来获取现在的时间。

案例:获取年月日

在使用new Date()后,我们可以分别使用getFullYear()获取当前年份,getMonth() + 1获得当前月份,.getDate()获得当前日期。

由于月份是由数组存储的,getMonth()返回的是数组下标,所以必须加一。

var d = new Date()
//年
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);//26

案例: 获取时分秒

同上,getHours(),getMinutes(),getSeconds()可以获得当前的时分秒。

 var d = new Date()
//时
var h = d.getHours()
console.log(h+"时");//9
//分
var f = d.getMinutes()
console.log(f+"分");//22
//秒
var s = d.getSeconds()
console.log(s+"秒");//52

 案例:获取星期几

getDay()获取星期返回的是下标,我们先定义一个数组week,在数组内写好内容。在打印的时候,打印数组内对应的下标内容就可以了。

注意:一周的开始是周天,获取星期返回的同样是下标

//星期返回的是下标
        var x = d.getDay()
        var week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
        console.log(week[x]);

案例:电子时钟

 结合上面几个案例,我们就可以把上面几个案例结合,输出年月日,时分秒和星期几。

只是把上面几个案例写在一起,并且一起输出,故不做赘述。

function timer() {
  var time = new Date();
  var year = time.getFullYear();
  var month = time.getMonth() + 1;
  var day = time.getDate();
  var hour = time.getHours();
  var minutes = time.getMinutes();
  var seconds = time.getSeconds();
  var x = time.getDay();
  var week = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六",];
  console.log(week[x]);
  var str ="现在是" +year +"年" +month +"月" +day +"日" +hour +"时" + minutes +"分" +seconds + "秒" +week[x];
  document.body.innerHTML = str;
  return str;
}
console.log(timer());

 时间戳

时间戳是从1970年1月1日早上8点开始算到现在(或某个时间)的毫秒数

创建创建戳

var d=new Date()

第一种书写方法:获取d的时间戳

console.log(d.getTime());

第二种书写方法,是获取现在的时间戳,这个方法在ie8以下的浏览器不可用

console.log(Date.now());

时间戳举例:

获取1970年1月1日,8点整的时间戳,和到现在的时间戳。

var d=new Date('1970/1/1 8:0:0')//正常传入,1970年1月1日,8点整
var d=new Date(1970,8,1,8,0,0)//月份-1,这个也是1970年1月1日8点整,与上面相同
//下面的d会覆盖上面的,但二者相同
console.log(d.getTime());//获取d的时间戳
console.log(Date.now());//获取现在的时间戳

由此可见,我们可以获得到某个时间的时间戳,也可以获得到现在的时间戳。

倒计时秒杀案例

在结合上面的案例后,我们可以做一个倒计时秒杀案例。

在双十一的时候我们经常看见各大电商的网页是都有倒计时秒杀,我们可以根据时间戳来做这个倒计时的效果。时间定在11月11号的0点,把11月11号0点的时间戳,减去现在的时间戳,获得一个差值,主要是把这个差值(毫秒),转化为天,小时,分钟和秒,这就是数学方面的问题了。

 代码解释见注释。

function timer() {
    var miao1 = setInterval(function () {
        var con = document.getElementById('con')
        var day11 = new Date('2022/11/11 0:0:0')//获取双十一的时间戳
        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//return截停代码
        }
    }, 1000)

}
console.log(timer())
console.log(timer())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

啊啊啊啊啊威

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

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

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

打赏作者

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

抵扣说明:

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

余额充值