乐趣区

关于javascript:按所给的时间格式输出指定的时间

题目介绍:

形容: \
按所给的工夫格局输入指定的工夫 \
格局阐明 \
对于 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;
}

总结: \
下面的实现形式很清晰易懂, 并且实现形式不麻烦, 值得记录学习

退出移动版