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
相关推荐
web行路人12 分钟前
React中类组件和函数组件的理解和区别
前端·javascript·react.js·前端框架
番茄小酱00113 分钟前
Expo|ReactNative 中实现扫描二维码功能
javascript·react native·react.js
子非鱼92131 分钟前
【Ajax】跨域
javascript·ajax·cors·jsonp
超雄代码狂34 分钟前
ajax关于axios库的运用小案例
前端·javascript·ajax
周亚鑫1 小时前
vue3 pdf base64转成文件流打开
前端·javascript·pdf
落魄小二1 小时前
el-table 表格索引不展示问题
javascript·vue.js·elementui
y5236481 小时前
Javascript监控元素样式变化
开发语言·javascript·ecmascript
fruge2 小时前
纯css制作声波扩散动画、js+css3波纹催眠动画特效、【css3动画】圆波扩散效果、雷达光波效果完整代码
javascript·css·css3
neter.asia2 小时前
vue中如何关闭eslint检测?
前端·javascript·vue.js
嚣张农民2 小时前
JavaScript中Promise分别有哪些函数?
前端·javascript·面试