时间对象: new Date()
获取当前用户的本地时间(用户的本地时间是不可靠的)
在真正的开发中,要获取服务器的时间(相对安全)
时间戳:
1970年01月01日00时00分00秒到当前的时间
new Date().getTime(); //number类型
Date.now()
+ new Date
2018年10月27日,12点43分00秒
下面获取的时间都是数字类型:
获取当前的年份:
t.getFullYear()
获取当前的月份
t.getMonth()
注意:
获取来的值少1个月份,所以要加1
获取日
t.getDate()
获取周几
t.getDay() 周日为0
获取小时:
t.getHours()
获取分钟:
t.getMinutes()
获取秒:
t.getSeconds()
例子:在页面中显示当前时间 ==> 2018年10月28日----周日----21点46分42秒
1 let arr = ['周日','周一','周二','周三','周四','周五','周六']; 2 console.log(['周日','周一','周二','周三','周四','周五','周六'][new Date().getDay()]) 3 function fn(){ 4 let t = new Date(); 5 let y = t.getFullYear(); 6 let m = tDou(t.getMonth()+1); 7 let d = tDou(t.getDate()); 8 let h = tDou(t.getHours()); 9 let mi = tDou(t.getMinutes()); 10 let se = tDou(t.getSeconds()); 11 p.innerHTML = y + '年' + m + '月' + d + '日----' + arr[t.getDay()]+'----' + h +'点'+ mi +'分'+ se +'秒'; 12 } 13 fn(); //上来直接执行,第一下不会闪 14 setInterval(fn,1000); 15 /* 16 小于10补0 17 */ 18 function tDou(n){ 19 return n<10?'0'+n:''+n; 20 }
倒计时原理:
1.未来的时间
2.现在的时间(每分每秒都在动)
未来的时间 - 现在的时间 = 剩下多少时间
new Date(工作时这儿放服务器时间);
设置时间:
字符串:
new Date('年 月 日 时:分:秒')
new Date('2018 10 27 15:40:00')
数字版:
new Date(年,月,日,时,分,秒)
new Date(2018,9,27,15,40)
注意:
设置月份的时候要减1
转换公式:
1 let d = Math.floor(t/86400); 2 t %= 86400; 3 let h = Math.floor(t/3600); 4 t %= 3600; 5 let m = Math.floor(t/60); 6 t %= 60;
例子:在页面中显示到未来某个时间的倒计时 ==> 00天17时37分50秒
1 let newdate = new Date('2018 10 28 16:00:00'); //未来的时间 2 let timer = null; 3 function fn(){ 4 let nowDate = new Date(); //现在的时间 5 let t = Math.floor((newdate - nowDate)/1000); 6 if(t <= 0){ 7 //如果未来的时间 - 现在的时间 小于0,说明现在的时间已经超过了设置的时间,所以关闭定时器 8 clearInterval(timer); 9 }else{ 10 let d = Math.floor(t/86400); //1 11 t %= 86400; 12 let h = Math.floor(t/3600); 13 t %= 3600; 14 let m = Math.floor(t/60); 15 t %= 60; 16 p.innerHTML = tDou(d)+'天'+tDou(h)+'时'+tDou(m)+'分'+tDou(t)+'秒'; 17 } 18 } 19 20 fn();//上来就先调用一次,避免有闪的现象 21 22 timer = setInterval(fn,1000);//开启定时器 23 24 function tDou(n){ //补零 25 return n<10?'0'+n:''+n; 26 }
求 一个月有多少天,这个月有几天?
let d = new date
d.setDate(1)//先设置成一号,避免出现计算下下个月的天数的情况
(比如1月30天,而2月最大28天,此时用这个方法会跳过2月,进入3月份,)
d.setMonth(d.getMonth()+1) //设置成下个月
d.setDate(0) //代表上个月的最后一天 等于知道了这个月有多少天
console.log(d.getDate())