概述:date是用于表示日期时间的对象,他里面的主要方法是用于获取日期时间和设置日期时间。
1.日期的声明
1.不传参
// 使用new关键词构建的都是对象 对象是引用数据类型 //不传参数获取的是当前的本地时间 var date = new Date() //获取当前的本地时间 console.log(date);
2.传递字符串
//传递对应的string类型的参数 根据本地的日期时间格式传递 var date = new Date('2000/10/9 12:00') console.log(date);
3.传数值
//传递一个数值 传递是毫秒值 根据格林兰治时间 1970/1/1 00:00:00向上递增 var date = new Date(1000)//在原本的格林兰治时间上递增一秒种 console.log(date);
4.传多个数值
//传递对应的多个参数 年 月 日 时 分 秒 毫秒 可以省略 var date = new Date(2000,11,12,12,12,12) //月份取值时0-11 console.log(date);
2.日期的比较和计算
//日期在对应的比较和计算中会自动变成number类型的毫秒值(离格林兰治时间的毫秒值) var date = new Date() var date1 = new Date('2022/10/1 11:41:00') console.log(date-date1);//变成number类型 console.log(date+date1);//不会变成number,字符串连接 console.log(date>date1);//true
3.日期对象的方法
1.获取对应的日期时间(get开头)
var date = new Date() console.log(date.getFullYear());//获取年 console.log(date.getMonth());//获取月 //0-11 实际月份会比获取大1 console.log(date.getDate());//获取日 ,当月的第几天 console.log(date.getDay());//获取星期几 ,星期天是第一天 0-6 console.log(date.getHours());//获取小时 0-23 console.log(date.getMinutes());//获取分钟 0-59 console.log(date.getSeconds());//获取秒钟 0-59 console.log(date.getMilliseconds());//获取毫秒 0-1000 console.log(date.getTime());//获取时间戳 离对应的格林兰治时间的毫秒值 console.log(Date.now());//静态方法 now console.log(date.getUTCFullYear());//辅助方法 utc国际标准时间 (上面的相关方法都有对应的utc方法)
2.设置对应的日期时间 (set开头)
var date = new Date() date.setFullYear(2022)//设置年份 date.setMonth(11)//设置对应得月份 //设置为12月 date.setMonth(13)//自动往递进 当前设置为2月 对应的年份就会往上加1 //设置对应的天数 date.setDate(39) //设置当月的第几天 超过当前月份的天数会自动向上递进 月份会+1 date.setHours(30)//设置对应的小时 最大为23 超过23 自动向上递进 天数会+1 date.setMinutes(59)//设置相关分钟 向上递进 0-59 小时会+1 date.setSeconds(59)//设置秒钟 跟分钟一样 date.setMilliseconds(999)//设置毫秒值 0-999 向上递进 date.setTime(1000)//根据对应的毫秒值设置对应的时间 date.setUTCDate(10)//设置对应的utc时间
3.辅助相关方法 转为对应的string
console.log(date.toDateString());//将对应的日期转换string返回 console.log(date.toTimeString());//将对应的时间转换string返回 console.log(date.toLocaleString());//根据本地的格式 转为对应的字符串返回 console.log(date.toLocaleDateString());//根据本地的格式 将日期转为对应的字符串返回 console.log(date.toLocaleTimeString());//根据本地的格式 将时间转为对应的字符串返回
定时器和延时器
概述:属于window的俩个方法,定时器和延时器是属于异步的行为,异步代码不按照对应的文档流执行(他会重新开辟一个异步线程),你是没有办法知道他什么时候走完。同步代码比异步代码先执行。定时器是定时器执行的(执行多次),延时器是延时执行(执行一次)。
1.同步和异步区别
//同步比异步先执行 setInterval(function(){ console.log('世界'); }, 0); //就算对应的间隔时间为0他也是异步的 console.log('你好');//先你好再打印世界
2.定时器 setInterval(做动画)
//第一个参数是执行的函数 第二个对应定时的时间(毫秒值) 第三个传递给对应函数的参数 setInterval(handlerFunction,time,arg) //第一种(传匿名函数) setInterval(function(params){ console.log(params) },1000,'hello') //第二种写法 (传递具名函数) function fn(params){ console.log(params); } setInterval(fn,1000,'jack') //第三种方式 (传递字符串 在字符串里面写代码 不推荐) setInterval('console.log("hello")',1000)
清除定时器 用于停止对应的定时器操作
//clearInterval(对应的定时器id) var timer = setInterval(function(){ console.log('hello') },1000) //清除对应的定时器 clearInterval(timer)
3.延时器 setTimeout (对应的等待)
//第一个参数是执行的函数 第二个对应定时的时间(毫秒值) 第三个传递给对应函数的参数 setTimeout(hanlderFunction,delay,arg) //执行一次就结束 内存并不会释放 var id = setTimeout(function(){ console.log('三秒后执行'); //清除延时器 clearTimeout(id)//释放内存 },3000)