欢迎来到JS复习专栏,本文章主要内容为内置对象Date
内置对象 Date 用来处理日期和时间。
需要注意的是:与 Math
对象不同,Date
对象是一个构造函数 ,需要先实例化后才能使用。
不传递参数时,则获取系统的当前时间对象
传递参数
传递参数时,表示获取指定时间的时间对象。参数中既可以传递字符串,也可以传递数字,也可以传递时间戳。
如下写法:
const date11 = new Date('2020/02/17 21:00:00');
const date12 = new Date('2020/04/19');
const date13 = new Date('2020-05-20');
const date14 = new Date('Wed Jan 27 2017 12:00:00 GMT+0800 (中国标准时间)');
const date21 = new Date(2020, 2, 18); // 注意,第二个参数返回的是三月,
const date22 = new Date(2020, 3, 18, 22, 59, 58);
const date31 = new Date(1591950413388);
想要日期以我们期望的格式展现,就是日期的格式化。
比如说,我期望能以 2020-02-02 19:30:59 这种格式进行展示。
在这之前,我们先来看看 Date 对象有哪些方法。
getFullYear() 获取年份
getMonth() 获取月: 0-11 0代表一月
getDate() 获取日:1-31 获取的是几号
getDay() 获取星期:0-6 0代表周日,1代表周一
getHours() 获取小时:0-23
getMinutes() 获取分钟:0-59
getSeconds() 获取秒:0-59
getMilliseconds() 获取毫秒 1s = 1000ms
好,那我们现在就来实现日期格式化:
格式要求:今年是:2022年7月31日 08:57:09 星期日
function formatDate() {
var date = new Date();
var year = date.getFullYear(); // 年
var month = date.getMonth() + 1; // 月
var day = date.getDate(); // 日
var week = date.getDay(); // 星期几
var weekArr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
var hour = date.getHours(); // 时
hour = hour < 10 ? '0' + hour : hour; // 如果只有一位,则前面补零
var minute = date.getMinutes(); // 分
minute = minute < 10 ? '0' + minute : minute; // 如果只有一位,则前面补零
var second = date.getSeconds(); // 秒
second = second < 10 ? '0' + second : second; // 如果只有一位,则前面补零
var result = '今天是:' + year + '年' + month + '月' + day + '日 ' + hour + ':' + minute + ':' + second + ' ' + weekArr[week];
return result;
}
定义:
时间戳:指的是从格林威治标准时间的1970年1月1日,0时0分0秒到当前日期所花费的毫秒数(1秒 = 1000毫秒)。
计算机底层在保存时间时,使用的都是时间戳。时间戳的存在,就是为了统一时间的单位。我们经常会利用时间戳来计算时间,因为它更精确。而且,在实战开发中,接口返回给前端的日期数据,都是以时间戳的形式。
需要注意的是:
是在中文环境下运行的,与英文时间会存在8个小时的时差(中文时间比英文时间早了八个小时)。
getTime() 获取日期对象的时间戳(单位:毫秒)。
更常用的方法:
const timestamp1 = +new Date();
console.log(timestamp1);
怎么做?
我们可以在业务代码的前面定义 时间戳1
,在业务代码的后面定义 时间戳2
。相减就能得出业务代码的执行时间。