四、日期对象
Date()日期对象:是一个构造函数,必须使用new来调用创建我们的日期对象。
var arr = new Array(); //创建一个数组对象
var obj = new Object(); //创建了一个对象实例
1、使用Date 如果没有参数 返回当前系统的当前时间
var date = new Date();
console.log(date); //获取当前时间
2、参数常用的写法 数字型2021,10,22 或者是 字符串型’2021-10-22 22:29:07’
//数字型:
var date = new Date(2021, 10, 22);
console.log(date); //注意:返回的是11月,不是10月
//字符串型
var date1 = new Date('2021-10-22 22:29:07');
console.log(date1);
4.1、概述:
- Date对象和Math对象不一样,他是一个构造函数,所以我们需要实例化后才能使用。
- Date实例用来处理日期和时间。
4.2、Date()方法的使用
1.获取当前时间必须实例化
var date = new Date();
console.log(date);
2.Date()构造函数的参数
如果括号里面有参数,就返回参数里面的时间。(参考上面:参数常用的写法)。
4.3日期格式化
方法名 | 说明 | 代码 |
getFullYear() | 获取当年 | dobj.getFullYear() |
getMonth() | 获取当月(0-11) | dobj.getMonth() |
getDate() | 获取当天日期 | dobj.getDate() |
getDay() | 获取星期几(周期1到周六6) | dobj.getDay() |
getHours() | 获取当前小时(0-23) | dobj.getHours() |
getMinutes() | 获取当前分钟(0-59) | dobj.getMinutes() |
getSeconds() | 获取当前秒钟(0-59) | dobj.Seconds() |
代码验证:年月日星期
var date = new Date();
console.log(date.getFullYear()); //获取当前年份
console.log(date.getMonth()+1); //获取月份 记得可以+1 因为获取当月(0-11)
console.log(date.getDate()); //获取几号
console.log(date.getDay()); //获取星期几 周日返回的是0,周一1,周六6(周期1到周六6)
我们写一个当前时间2021年10月23日,星期六
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth()+1;
var dates = date.getDate();
var arr = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'] //注意
var day = date.getDay();
console.log("今天是:" + year + "年" + month + "月" + dates + "日 " + arr[day]);
代码验证:时分秒
var date = new Date();
console.log(date.getHours()); //获取小时
console.log(date.getMinutes()); //获取分钟
console.log(date.getSeconds()); //获取秒
要求封装一个函数返回当前的时分秒 格式00:00:00
//要求封装一个函数返回当前的时分秒 格式00:00:00
function getTime(){
var time = new Date();
var h = time.getHours();
h = h < 10 ? "0" + h : h;
var m = time.getMonth();
m = m < 10 ? "0" + m : m;
var s = time.getSeconds();
s = s < 10 ? "0" + s : s;
return h + ":" + m + ":" + s;
}
console.log(getTime());
4.4获取日期的总的毫秒形式
Date对象是基于1970年1月1日(世界标准时间)起的毫秒数。
为什么计算机起始时间从1970年开始?
----我们经常利用总的毫秒数来计算时间,因为它更精确。
获得Date总的毫秒数(又称时间戳) ( 不是当前时间的毫秒数,而是距离1970年1月1日过了多少毫秒。)
方法1、通过 valueOf() getTime()
var date = new Date();
console.log(date.valueOf());
console.log(date.getTime());
方法2、简写的写法(最常用的写法)
var date = +new Date(); //+new Date()返回的就是总的毫秒数。
console.log(date);
方法3、H5新增的(需要考虑兼容器)
console.log(Date.now());
案例:写一个倒计时
//转换公式
d = parseInt(总秒数 /60/60 /24); //计算天数
h = parseInt(总秒数 /60/60 %24); //计算小时
m = parseInt(总秒数 /60 %60); //计算分数
s = parseInt(总秒数 %60); //计算秒数
function countDown(time){
//当前时间总毫秒数
var nowTime = +new Date();
//用户输入时间的总毫秒数
var inputTime = +new Date(time);
//相减 剩余时间总的毫秒数 //毫秒转秒 /1000
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 + "秒";
}
console.log(countDown('2021-11-1 10:00:00'));