18 js时间对象

时间对象是一种复杂数据类型,用来存储时间

创建时间对象

内置构造函数创建

语法:var 时间名=new Date()

javascript 复制代码
        var date=new Date()
        console.log(date)   //Wed May 29 2024 16:03:47 GMT+0800 (中国标准时间)

创建指定日期

当参数为数字------>在格林威治的时间基础上增加

多个数字一次表示年月日时分秒

当参数为字符串------>设置指定日期

javascript 复制代码
        //格林威治时间 Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)

        //1.一个参数  在格林威治时间的基础上加 1000=1s
        var date1=new Date(1000)
        console.log(date1)      //Thu Jan 01 1970 08:00:01 GMT+0800 (中国标准时间)

        //2.多个参数 依次表示年月日时分秒  在格林威治时间的基础上加
        var date2=new Date(1,2,3)
        console.log(date2)      //Sun Mar 03 1901 00:00:00 GMT+0800 (中国标准时间)

        //3.当参数为字符串,则是设置具体日期
        var date3=new Date('2001-12-12 10:10:10')
        console.log(date3)  //Wed Dec 12 2001 10:10:10 GMT+0800 (中国标准时间)
        var date4=new Date('2001/12/12 10:10:10')
        console.log(date4)  //Wed Dec 12 2001 10:10:10 GMT+0800 (中国标准时间)

        var date5=new Date('2001/12/12 10:10:10','2002/12/12 10:10:10')
        console.log(date5)  //Invalid Date  无效日期

事件对象方法

javascript 复制代码
        var date=new Date('2024/12/2 10:10:10')

        //获取年份
        console.log(date.getFullYear()) //2024

        //获取月份 月是从0开始到11结束  0-11------>1-12
        console.log(date.getMonth())    //返回数字11  

        // 获取日期
        console.log(date.getDate())     //2

        // 获取时间
        console.log(date.getHours())    //10

        // 获取分钟
        console.log(date.getMinutes())  //10

        // 获取秒
        console.log(date.getSeconds())  //10

        // 获取毫秒
        console.log(date.getMilliseconds()) //0

        // 获取星期几   返回数字0-6分别对应星期日-星期六
        console.log(date.getDay())          //1

        // 获取时间戳------现在距离格林威治时间的毫秒数
        console.log(date.getTime()) //1733105410000

练习题

练习题1:获取当前时间编写一个函数,返回当前的日期和时间字符串,格式为:YYYY-MM-DD-MM-DD HH:mm:ss。

javascript 复制代码
function getCurrentDateTime() {
    var now = new Date();
    var year = now.getFullYear();
    var month = ("0" + (now.getMonth() + 1)).slice(-2);//slice从倒数第2位开始截取
    var day = ("0" + now.getDate()).slice(-2);
    var hours = ("0" + now.getHours()).slice(-2);
    var minutes = ("0" + now.getMinutes()).slice(-2);
    var seconds = ("0" + now.getSeconds()).slice(-2);
    return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
}

console.log(getCurrentDateTime());

练习题2:编写一个函数,输入任意年月日,输出该年份的日期是星期几(例如:0代表周日,1代表周一,以此类推)。

javascript 复制代码
      function fn(argDay) {
        var day = new Date(argDay);
        return day.getDay();
      }
      console.log(fn("2020/12/2"));        //3
      console.log(fn("2023/01/12"));       //4
      console.log(fn("2024/5/27"));        //1

练习题3:倒计时创建一个倒计时器函数,接受一个未来的时间(年-月-日 时:分:秒),并实时显示距离该时间还有多久(以小时、分钟、秒显示)。

javascript 复制代码
      function fn(d1) {
        var day1 = new Date();
        console.log(day1);
        var day2 = new Date(d1);
        //两者相差毫秒数
        var timer = Math.abs(day1.getTime() - day2.getTime()) / 1000;
        console.log(timer);
        //1小时=60分钟=3600秒  =3600 000毫秒
        var h = parseInt(timer / 3600);
        var m = parseInt((timer - h * 3600) / 60);
        var s = parseInt(timer - h * 3600 - m * 60);
        return h + ":" + m + ":" + s;
      }
      console.log(fn("2024/5/31 20:25:20"));

练习题4:日期比较编写一个函数,比较两个日期字符串(格式YYYY-MM-DD),返回哪一个日期更早。

javascript 复制代码
function compareDates(dateStr1, dateStr2) {
    var date1 = new Date(dateStr1);
    var date2 = new Date(dateStr2);
    return date1.getTime() < date2.getTime() ? dateStr1 : dateStr2;
}

console.log(compareDates("2023-01-01", "2023-12-31")); 

练习题5:月份天数编写一个函数,给定一个年份和月份,返回该月份的天数(考虑闰年)。

javascript 复制代码
      var date = new Date(2024, 2, 0);    //将日期设置为0即可
      console.log(date.getDate());    //29
相关推荐
sunly_28 分钟前
Flutter:自定义Tab切换,订单列表页tab,tab吸顶
开发语言·javascript·flutter
咔咔库奇1 小时前
【TypeScript】命名空间、模块、声明文件
前端·javascript·typescript
NoneCoder1 小时前
JavaScript系列(42)--路由系统实现详解
开发语言·javascript·网络
又迷茫了1 小时前
vue + element-ui 组件样式缺失导致没有效果
前端·javascript·vue.js
哇哦Q2 小时前
原生HTML集合
前端·javascript·html
SoWhat~2 小时前
随遇随记篇
前端·javascript
爱上大树的小猪2 小时前
【前端SEO】使用Vue.js + Nuxt 框架构建服务端渲染 (SSR) 应用满足SEO需求
前端·javascript·vue.js
w(゚Д゚)w吓洗宝宝了4 小时前
单例模式 - 单例模式的实现与应用
开发语言·javascript·单例模式
zhaocarbon4 小时前
VUE elTree 无子级 隐藏展开图标
前端·javascript·vue.js
小周不摆烂5 小时前
探索JavaScript前端开发:开启交互之门的神奇钥匙(二)
javascript