日期与时间戳
1.Date->Timestamp
(1)new Date()
与Date()
new Date()声明类型为object
const date = new Date();
console.log(date);
console.log(typeof date);
// 返回时间戳 1970年0时0分0秒到现在的ms数
console.log(date * 1);
Date()声明类型为string
const date2 = Date();
console.log(date2);
console.log(typeof date2);
// 字符串计算 返回NaN
console.log(date2 * 1);
(2)四种方法
const date = new Date("1996-7-12 8:22:12");
console.log(date * 1);
console.log(Number(date));
console.log(date.valueOf());
console.log(date.getTime());
2.Timestamp->Date
const date = new Date("1996-7-12 8:22:12");
const timestamp = date.valueOf();
console.log(new Date(timestamp));
3.获取Timestamp
const date3 = Date.now();
console.log(date3);
4.计算脚本执行时间
(1)Date.now()
// 脚本时间计算
const start = Date.now();
for (let i = 0; i < 200000000; i++) { }
const end = Date.now();
console.log((end - start) / 1000 + "秒");
(2)console.time()
console.timeEnd()
// 记录时间
console.time("for");
for (let i = 0; i < 200000000; i++) { }
// for执行结束后的时间减去刚开始记录的时间
console.timeEnd("for");
5.Date转换为时间对象
const date = new Date('1990-9-22 3:22:18');
console.log(date);
console.log(date.getMonth());//月份从0开始
6.将数组中对象转换为Date
const date2 = new Date(1990, 9, 22, 3, 22, 18);
console.log(date2);
const param = [1990, 9, 22, 3, 22, 18];
// 展开语法:相当于把一个数组中元素变为一个个独立个体
const date3 = new Date(...param);
console.log(date3);
7.封装日期格式化函数
const date = new Date("1992-2-12 10:22:18");
console.log(date.getFullYear());
console.log(date.getMonth() + 1);
console.log(date.getDate());
console.log(date.getHours());
console.log(date.getMinutes());
console.log(date.getSeconds());
封装成函数:
const date = new Date("1992-2-12 10:22:18");
// 封装成函数
function dateFormat(date, format = "YYYY-MM-DD HH:mm:ss") {
const config = {
YYYY: date.getFullYear(),
MM: date.getMonth() + 1,
DD: date.getDate(),
HH: date.getHours(),
mm: date.getMinutes(),
ss: date.getSeconds()
};
for (const key in config) {
format = format.replace(key, config[key]);
}
return format;
}
console.log(dateFormat(date, "YYYY年MM月DD日"));
但建议使用已有的库,避免重复造轮子(如Moment.js)