日期格式化
记录一个日期格式化时的小技巧。
问题:随意一个日期指定格式化后的格式为 HH:mm:dd 格式,且 年 月 日 之间 连接符随意。
方法一:【时间判断法】
const dateFormatter = (date: string | Date | number, c?: string) => {
const d = new Date(date);
// 年月日
const year = d.getFullYear();
const month = (d.getMonth() + 1) < 10 ? `0${d.getMonth() + 1}` : d.getMonth() + 1;
const day = d.getDate() < 10 ? `0${d.getDate()}` : d.getDate();
if (c) return `${year}${c}${month}${c}${day}`;
else return `${year}年${month}月${day}日`
}
let a = dateFormatter('2020-1-12');
console.log(a); // 2020年01月12日
let a = dateFormatter('2020-1-12', '/');
console.log(a); // 2020/01/12
时间判断法:通过对 月份和天数 是否小于 10 进行判断,并进行 补0 操作
方法二:【字符串剪切法】
const dateFormatter = (date: string | Date | number, c?: string) => {
const d = new Date(date);
// 年月日
const year = d.getFullYear();
const month = (d.getMonth() + 1 + 100).toString().substr(1);
const day = (d.getDate() + 100).toString().substr(1);
if (c) return `${year}${c}${month}${c}${day}`;
else return `${year}年${month}月${day}日`
}
let a = dateFormatter('2020-1-12');
console.log(a); // 2020年01月12日
let a = dateFormatter('2020-1-12', '/');
console.log(a); // 2020/01/12
字符串剪切法:通过对 月份和天数分别+100 ,然后 剪切掉第一位的 1,即可得到一个两位的目标格式。