题目介绍:
描述:
按所给的时间格式输出指定的时间
格式说明
对于 2014.09.05 13:14:20
yyyy: 年份,2014
yy: 年份,14
MM: 月份,补满两位,09
M: 月份, 9
dd: 日期,补满两位,05
d: 日期, 5
HH: 24制小时,补满两位,13
H: 24制小时,13
hh: 12制小时,补满两位,01
h: 12制小时,1
mm: 分钟,补满两位,14
m: 分钟,14
ss: 秒,补满两位,20
s: 秒,20
w: 星期,为 ['日', '一', '二', '三', '四', '五', '六'] 中的某一个,本 demo 结果为 五
实例 :
formatDate(new Date(1409894060000), 'yyyy-MM-dd HH:mm:ss 星期w')
解析:
自己的实现太过于片面,这里记录另一种全面的解法.
function formatDate(date,format){
function add0(time){
return time < 10 ? '0'+time : time
}
let weeks = ['日','一','二','三','四','五','六'];
let formatList = {
yyyy:date.getFullYear(),
yy:date.getFullYear() % 100,
MM:add0(date.getMonth()+1),
M:date.getMonth()+1,
dd:add0(date.getDate()),
d:date.getDate(),
HH:add0(date.getHours()),
H:date.getHours(),
hh:add0(date.getHours() % 12),
h:date.getHours() % 12,
mm:add0(date.getMinutes()),
m:date.getMinutes(),
ss:add0(date.getSeconds()),
s:date.getSeconds(),
w:weeks[date.getDay()],
}
for(let key in formatList){
format = format.replace(key,formatList[key])
}
return format;
}
总结:
上面的实现方式很清晰易懂,并且实现方式不麻烦,值得记录学习