时间对象是一种复杂数据类型,用来存储时间
创建时间对象
内置构造函数创建
语法:var 时间名=new Date()
javascriptvar 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 无效日期
事件对象方法
javascriptvar 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。
javascriptfunction 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代表周一,以此类推)。
javascriptfunction 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:倒计时创建一个倒计时器函数,接受一个未来的时间(年-月-日 时:分:秒),并实时显示距离该时间还有多久(以小时、分钟、秒显示)。
javascriptfunction 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),返回哪一个日期更早。
javascriptfunction 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:月份天数编写一个函数,给定一个年份和月份,返回该月份的天数(考虑闰年)。
javascriptvar date = new Date(2024, 2, 0); //将日期设置为0即可 console.log(date.getDate()); //29