思路:在方法fDate内要引入两个对像,一个是时间,一个是时间格式。然后在新建一个const用来保存传入的时间数据。然后使用for in循环将保存的各个时间段保存进format中,最后返回format生成你想要的时间格式
代码:
function fDate( t1, format = "YYYY-MM-DD HH:mm:ss"){
const config = {
YYYY:t1.getFullYear(),
MM:t1.getMonth(),
DD:t1.getDate(),
HH:t1.getHours(),
mm:t1.getMinutes(),
ss:t1.getSeconds()
};
for( const key in config){
console.log(key)
format = format.replace(key,config[key])
console.log(key)
}
return format;
}
//此处的"YYYY年MM月DD HH:mm:ss"可以改成任意格式,但是要注意方法中的format格式
console.log(fDate(new Date(),"YYYY年MM月DD HH:mm:ss"))
结果:
其中在该函数传入时间是需要使用new Date()生成的对象而不能还用Date.now()生成的,因为后者并不能调用函数。原因如下:
代码段:
let t1 = new Date()
let t2 = Date.now();
console.log(typeof t1);
console.log(typeof t2);
在控制台观察:可得一个是引用类型数据,一个是number类型数据。