以当前时间为例:
方法一:
data(){
return {
newTime: "", //时分秒
newDay: "", //年月日
newWeek: "", //星期几
}
},
created() {
this.getTime();
},
methods: {
getTime() {
let t = new Date();
let y = t.getFullYear();
let mm = t.getMonth() + 1;
let m = mm < 10 ? "0" + mm : mm;
let d = t.getDate() < 10 ? "0" + t.getDate() : t.getDate();
let h = t.getHours() < 10 ? "0" + t.getHours() : t.getHours();
let mi = t.getMinutes() < 10 ? "0" + t.getMinutes() : t.getMinutes();
let s = t.getSeconds() < 10 ? "0" + t.getSeconds() : t.getSeconds();
// 时分秒
this.newTime = h + ":" + mi + ":" + s;
// 年月日
this.newDay = y + "-" + m + "-" + d;
// 星期几
let weekDays = [
"星期天",
"星期一",
"星期二",
"星期三",
"星期四",
"星期五",
"星期六",
];
let week = t.getDay();
this.newWeek = weekDays[week];
}
},
方法二:
用到ES2017 引入的字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()
用于头部补全,padEnd()
用于尾部补全。
这里使用padStart()
data() {
return {
formatDate: "", //年月日
};
},
created() {
this.getFormatDate();
},
methods: {
getFormatDate() {
let value = new Date();
const year = `${value.getFullYear()}`;
const month = `${value.getMonth() + 1}`;
const day = `${value.getDate()}`;
this.formatDate =
year + "-" + month.padStart(2, "0") + "-" + day.padStart(2, "0");
}
}
padStart()
接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。
'xxx'.padStart(2, 'ab') // 'xxx'
如果省略第二个参数,默认使用空格补全长度。
'x'.padStart(4) // ' x'
padStart()
的常见用途是为数值补全指定位数。下面代码生成 10 位的数值字符串。
'1'.padStart(10, '0') // "0000000001"
'12'.padStart(10, '0') // "0000000012"
'123456'.padStart(10, '0') // "0000123456"
另一个用途是提示字符串格式。
'12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"
'09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"
padEnd()使用同理。