Date对象
Date 是一个构造函数,首先要通过 new Date() 来创建实例对象,提供实例成员。
创建 Date 实例用来处理日期和时间。Date 对象基于 1970年1月1日(世界标准时间)起的毫秒数。
构造方法:
1、空构造函数
var now = new Date();
通过空参构造函数,获取当前时间,UTC 世界时间,距1970年1月1日(世界标准时间)起的毫秒数
2、毫秒数来获取时间
var date1 = new Date(149809900356); // 通过毫秒数获取指定日期
3、日期格式字符串
var date2 = new Date('2019-8-16'); // 通过指定日期获取日期
4、年、月、日格式
var date3 = new Date(2019,7,16); // 通过指定年/月/日 获取日期
获取日期毫秒形式的方法:
1、通用方法
var now = new Date();
console.log(now.valueof()); // valueof 用于获取对象的原始值
console.log(now.getTime());
2、HTML5的方法
var now = Date.now(); // HTML5中提供的静态成员,有兼容性问题,
3、其他方法
// 不支持HTML5的浏览器,可以用下面这种方式
var now = + new Date(); // 相当于调用 Date 对象的 valueof() 方法
var now = Number(new Date())
日期格式化方法:
toString() // 将日期转化为字符串
valueof() // 获取日期的毫秒值
toDateString() // 将日期转化为字符串
toTimeString() // 将时间转化为字符串
toLocaleDateString() // 将日期转化为本地日期字符串
toLocaleTimeString() // 将时间转化为本地时间字符串
注意:后四种方法在不同浏览器可能表现不一致,一般不用。
获取日期指定部分:
getTime() // 返回毫秒数和 valueof()结果一样,valueof()调用的 getTime()
getMilliseconds()
getSeconds() // 返回 0-59
getMinutes() // 返回 0-59
getHours() // 返回 0-23
getDay() // 返回星期几,0 周日,6 周六
getDate() // 返回当前月的第几天
getMonth() // 返回月份,从 0 开始计数
getFullYear() // 返回4位的年份
案例:
1、格式化日期对象,返回 yyyy-MM-dd HH:mm:ss 的形式
1 function formatDate(date) {
2 // 判断参数date是否是日期对象
3 // instanceof instanceof 实例(对象)
4 if (!(date instanceof Date)) {
5 console.error('date不是日期对象')
6 return;
7 }
8
9 var year = date.getFullYear(),
10 month = date.getMonth() + 1,
11 day = date.getDate(),
12 hour = date.getHours(),
13 minute = date.getMinutes(),
14 second = date.getSeconds();
15
16 month = month < 10 ? '0' + month : month;
17 day = day < 10 ? '0' + day : day;
18 hour = hour < 10 ? '0' + hour : hour;
19 minute = minute < 10 ? '0' + minute : minute;
20 second = second < 10 ? '0' + second : second;
21
22 return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
23 }
2、计算时间差,返回相差的天/时/分/秒
1 function getInterval(start, end) {
2 // 两个日期对象,相差的毫秒数
3 var interval = end - start;
4 // 求 相差的天数/小时数/分钟数/秒数
5 var day, hour, minute, second;
6
7 // 两个日期对象,相差的秒数
8 interval /= 1000;
9
10 day = Math.round(interval / 60 / 60 / 24);
11 hour = Math.round(interval / 60 / 60 % 24);
12 minute = Math.round(interval / 60 % 60);
13 second = Math.round(interval % 60);
14 // 返回一个对象,键值对
15 return {
16 day: day,
17 hour: hour,
18 minute: minute,
19 second: second
20 }
21 }