Date对象是 JAVAScript原生的时间库 。它以1970年1月1日00:00:00作为时间的零点,可以表示的时间范围是前后各1亿天(单位为毫秒) 。
Date对象的创建:
Date可以当作构造函数使用 。对它使用new命令,会返回一个Date对象的实例;如果不加参数,实例代表的就是当前时间 。
var today = new Date();today.toString(); // Sun Feb 23 2020 15:09:42 GMT+0800 (中国标准时间)// 对Date实例求值,返回的是一个字符串,代表该实例对应的时间 。
日期的处理:
oDate.getDate();// 返回一个月中的某一天 (1 ~ 31) oDate.getDay();// 返回一周中的某一天 (0 ~ 6) oDate.getMonth();// 返回月份 (0 ~ 11) oDate.getFullYear(); // 以四位数字返回年份
作为构造函数时,Date对象可以接受多种格式的参数,返回一个该参数对应的时间实例:
// 参数为时间零点开始计算的毫秒数new Date(1378218728000);//(最常用)// 代表年、月、日、小时、分钟、秒、毫秒new Date(2020, 1, 23, 0, 0, 0, 0)// Sun Feb 23 2020 00:00:00GMT+0800// 参数也可以是一个字符串(最常用)// 日期字符串应该符合RFC 2822和ISO 8061这两个标准,即YYYY-MM-DDTHH:mm:ss.sssZ格式new Date('2020-2-23');new Date('2020/2/23');new Date('02/23/2020');new Date('2020-FEB-23');new Date('FEB, 23, 2020');new Date('Feberuary, 23, 2020');new Date('23 Feb 2020');new Date('23, Feberuary, 2020');//上面多种日期字符串的写法,返回的都是同一个时间
获取日期时间:
注意,月份从0开始计算,但是,天数从1开始计算 。另外,除了日期的默认值为1,小时、 分钟、秒钟和毫秒的默认值都是0 。
oDate.getDate();// 返回一个月中的某一天 (1 ~ 31)oDate.getDay();//返回一周中的某一天 (0 ~ 6)oDate.getMonth();// 返回月份 (0 ~ 11)oDate.getFullYear();// 以四位数字返回年份oDate.getHours();// 返回当前小时(0-23)oDate.getMinutes();//返回当前分钟 (0 ~ 59)oDate.getSeconds();//返回当前秒(0 ~ 59)oDate.getMillisenconds();// 返回当前毫秒(0 ~ 999)oDate.getTime();//返回1970年1月1日至今的毫秒数
设置日期时间:
这些参数如果超出了正常范围,就会被自动折算 。比如,如果月设为15,就折算为下一年的4月
【JavaScript 内置对象之——Date,看完你会更清晰】oDate.setDate();//设置月中的某一天 (1 ~ 31)oDate.setMonth();//设置月份 (0 ~ 11)oDate.setFullYear();//设置年份(四位数)oDate.setHours();//设置小时(0-23)oDate.setMinutes();//设置分钟 (0 ~ 59)oDate.setSeconds();//设置秒(0 ~ 59)oDate.setMillisenconds();//设置毫秒(0 ~ 999)oDate.setTime();//设置1970年1月1日至今的毫秒数
日期的运算:
类型自动转换时,Date实例如果转为数值,则等于对应的毫秒数;
如果转为字符串,则等于对应的日期字符串 。
所以,两个日期实例对象进行减法运算时,返回的是它们间隔的毫秒数;进行加法运算时,返回的是两个字符串连接而成的新字符串 。
var d1 = new Date(2020, 2, 23);var d2 = new Date(2020, 3, 29);d2 - d1// 518400000d2 + d1// Sun Mar 29 2020 00:00:00 GMT+0800 (中国标准时间)Mon Mar 23 2020 00:00:00 GMT+0800 (中国标准时间)
静态方法:
Date.parse():方法用来解析日期字符串,返回该时间距离时间零点(1970年1月1日 00:00:00)的毫秒数 。
日期字符串应该符合 RFC 2822 和 ISO 8061 这两个标准,即YYYY-MM-DDTHH:mm:ss.sssZ格式,其中最后的Z表示时区 。但是,其他格式也可以被解析,例如:
Date.parse('Dec 8, 2010')Date.parse('January 20, 2020 12:32:13')Date.parse('Mon, 12 Dec 2020 13:30:00 GMT')Date.parse('Mon, 21 Dec 2020 13:30:00 +0430')Date.parse('2010-10-10')Date.parse('2012-12-10T12:12:00')
setInterval(func,time):
有两个参数,第一个参数是一个函数,第二个参数是时间间隔,单位是毫秒;
每间隔time毫秒,会执行一次函数 。
// setInterval的返回值是一个数字function box(){console.log(1)}var timer = setInerval(box,1000);// 上面代码意思是,每间隔1000毫秒,box函数执行一次 。
setTimeout(func,time):
第一个参数func是将要推迟执行的函数名,第二个参数time是推迟执行的毫秒数 。
setTimeout函数用来指定某个函数或某段代码,在多少毫秒之后执行 。它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器 。
btn.onclick= function(){setTimeout (function(){alert("我出现在2秒后");},2000) }
clearTimeout():取消延时器
clearInterval():取消定时器
推荐阅读
- 在微控制器平台等小型物联网设备上运行 JavaScript
- 网站用HTTPS是必须的吗?HTTPS对网站防护的作用
- 饭后能吃芒果的吗?
- 血脂高晚上到底吃什么?
- 水瓶座女性性格优缺点对比
- 产妇可以吃丝瓜汤吗
- 做甜酒酿的步骤
- 在北京买房需要注意什么
- 如何游泳对初学者来说是最好的
- 红茶跟黑茶,红茶对女人功效与作用吗