在日常开发过程中,我们会经常使用到Date属性来完成倒计时等一些需求。那么我们就来看一下这个Date。
要创建一个日期对象,使用new操作符和Date构造函数即可。
1. 没有参数时返回当前的系统时间
var newDate = new Date();
console.log(newDate) //new Date()没有参数时返回系统当前的时间
2. new Date()有参数时,返回我们设定的参数,参数有两种写法
数字型:2020,2,10 或者是字符串:"2020-2-10"
var newDate = new Date(2020,2,10);
console.log(newDate)
var newDate2 = new Date("2020-2-17 8:8:8");
console.log(newDate2)
3. 日期/时间的组件方法
var newDate = new Date();
console.log(newDate);
console.log(newDate.getFullYear());//得到整年
console.log(newDate.getMonth());//得到整月
console.log(newDate.getDate());//得到日
console.log(newDate.getDay());//得到星期 周日0-周六6
console.log(newDate.getHours());//得到小时
console.log(newDate.getMinutes());//得到分
console.log(newDate.getSeconds());//得到秒
4. 写一个今天是2020年2月10日星期一
var newDate = new Date();
var year = newDate.getFullYear();
var month = newDate.getMonth()+1;//月份是从0-11,所以应该+1
var Date = newDate.getDate();
var day = newDate.getDay();
var arr = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]//星期是从0-6,所以采用数组的方式
console.log("今天是"+year+"年"+month+"月"+Date+"日"+arr[day])
5. 格式化时、分、秒
var newDate = new Date();
console.log(newDate.getHours()); //得到当前时间的小时数;
console.log(newDate.getMinutes()); //得到分;
console.log(newDate.getSeconds()); //得到秒
6. 封装一个函数,返回当前时间 如 08:08:08
需求分析:这里需要用到上述方法来获取到当前时间的时、分、秒,但是当时、分、秒为单数时,这里会返回单数的时,分,秒。例如: 8:8:8。这时使用我们的三元运算符就能完成。
function getTime(){
var time = new Date();
var h = time.getHours();
h = h<10? "0"+h : h;
var m = time.getMinutes();
m = m<10? "0"+m : m;
var s = time.getSeconds();
s = s<10? "0"+s : s;
return h+":"+m+":"+s
}
console.log(getTime())
7. 获取当前的毫秒数(时间戳)
// 1.通过valueOf() 或者getTime()
var date = new Date();
console.log(date.valueOf());
console.log(date.getTime());
// // 2.简单写法 + new Date() 不需要var date = new Date();
var date1 = + new Date();
console.log(date1);
// //3.h5新增的方法 获取当前时间至1970-1-1的毫秒数 不需要var date = new Date();
console.log(Date.now());
8. 封装一个倒计时函数
需求分析,完成一个倒计时需要两个时间戳。一个是当前时间的时间戳,另一个是目标时间的时间戳,通过两个时间戳的差值来返回倒计时的时分秒。然后再利用setInteval定时器来完成实时刷新。
function cutDown(time){
var nowTime = +new Date();
var inputTime = +new Date(time);
var times = (inputTime-nowTime)/1000;
var d = parseInt(times/60/60/24);
d = d<10? "0"+d : d;
var h = parseInt(times/60/60 %24);
h = h<10? "0"+h : h;
var m = parseInt(times/60 %60);
m = m<10? "0"+m : m;
var s = parseInt(times %60);
s = s<10? "0"+s : s;
return d+"天"+h+"时"+m+"分"+s+"秒"
}
var p = document.getElementById("time");
setInterval(function(){
p.innerHTML = cutDown("2020-2-10 11:20:00");
},1000);