一, Date 对象
1,Date 用于获取当前时间
- var d = new Date();
- console.log(d); // 向控制台输出内容
- console.dir(d); // 查看对象的内容信息
2,getFullYear() 获取月份
- var year = d.getFullYear();
- // 获取当前年份
- console.log(year);
3,getMonth() 获取月份
- var month = d.getMonth() + 1;
- // 获取当前月份
- console.log(month);
注: JavaScript 规定, 获取的月份, 数值是 0-11 , 0 表示 1 月份, 11 表示 12 月份, 实际月份的数值, 是获取结果 +1
4,getDay() 获取星期
- var week = d.getDay();
- // 获取当前星期
- console.log(week);
注: 获取星期的结果是 0-6 的数值, 0 表示星期日, 其他的正常表示
5,getHours() 获取小时
- var house = d.getHours();
- // 获取当前小时
- console.log(house);
6,getMinutes() 获取分钟
- var minute = d.getMinutes();
- // 获取当前分钟
- console.log(minute);
7,getSeconds() 获取秒
- var second = d.getSeconds();
- // 获取当前秒
- console.log(second);
二, 时间戳
1, 简单的时间戳: 实际项目中, 往往用于计算时间, 来衡量时间差
- var d = new Date();
- var times = d.getTime();
- // 获取当前时间
- console.log(times);
2, 复杂时间戳: 主要用于倒计时
- // 定义结束时间的时间对象
- var end = new Date('2020-4-1 0:0:0');
- // 获取开始时间对象
- var start = new Date();
- // 计算开始时间与结束时间之间的总秒数, 如果不 / 1000 是毫秒
- var times = parseInt((end.getTime() - start.getTime() )/ 1000 );
- console.log(times)
- // 利用总时间计算天数
- var day = parseInt( times / (24*60*60));
- console.log(day);
- // 利用总时间 ay 求在总天数之后还有多少小时
- var hour = parseInt( ( times % (24*60*60) ) / ( 60 * 60) );
- console.log(hour);
- // 将剩余的秒数, 转化为分钟
- var minute = parseInt( ( times % (60*60) ) / 60 );
- console.log(minute);
- // 求剩余的秒数
- var second = times % 60 ;
- console.log(second);
- // 输出时间
- document.write( ` 距离结束时间, 还有 ${day} 天,${hour} 小时,${minute} 分钟,${second} 秒, 请您抓紧时间付款, 或者找老公付款 ` );
三, 定时器, 取消定时器
1, 定时器: setInterval(参数 1 , 参数 2)
例子 1:
- var interval1 = setInterval( function(){
- document.write('张老师帅极了' + '<br>');
- } , 1000);
例子 2:
- var interval2 = setInterval( function(){
- document.write('张老师不仅帅, 还是非常帅' + '<br>');
- } , 1000);
注:
setInterval(参数 1 , 参数 2)
A, 参数 1: 要执行的程序, 必须是一个函数的形式 function(){ 定义程序 }
B, 参数 2: 执行程序的间隔时间, 单位是毫秒
C, 定时器第 0 秒不会执行, 从打开的第二秒开始
2, 终止定时器: clearInterval(需要清除的定时器参数或下标)
- // 定义一个变量, 存储执行次数
- var int = 0;
- var interval3 = setInterval( function(){
- document.write('张老师不仅帅, 还是非常帅' + '<br>');
- // 每次执行, 变量自增
- int++;
- // 当满足某个我们设定的条件时
- if(int == 10){
- // 清除定时器, 终止程序的执行
- clearInterval(interval3);
- }
- } , 1000);
- console.log(interval3);
注:
A, 清除定时器尽量不要用下标, 用实际变量名称
B, 清除定时器, 实际上就是关闭整个程序中的第几个定时器
四, 延时器, 取消延时器
1, 延时器 setTimeout
- setInterval(function(){
- } , 1000);
- // 延时 5 秒钟之后, 执行程序
- var timeout1 = setTimeout( function(){
- console.log('张老师还是很帅的');
- } , 5000 )
- console.log(timeout1);
2, 取消延时器 clearInterval
- setInterval(function(){
- } , 1000);
- // 延时 5 秒钟之后, 执行程序
- var timeout1 = setTimeout( function(){
- console.log('张老师还是很帅的');
- } , 5000 )
- console.log(timeout1);
- // 取消延时器
- clearInterval(timeout1);
五, 延时器的特别说明:
1, 变量存储的也是序号, 表示的是第几个延时器
2, JavaScript 中, 定时器和延时器, 的计数是不做区分的, 也就是第几个定时器, 和第几个延时器, 是一起计算的, 不做区分
- setInterval(function(){
- } , 1000); 1
- setInterval(function(){
- } , 1000); 2
- settimeout(function(){
- } , 1000); 3
- setInterval(function(){
- } , 1000); 4
- settimeout(function(){
- } , 1000); 5
3, clearInterval 和 clearTimout 是不做区分的
4,clearInterval 可以清除定时器, 也可以清除延时器
5,clearTimout 可以清楚延时器, 也可以清除定时器
来源: http://www.bubuko.com/infodetail-3477650.html