時間フォーマット出力(思考回路がクリア)

9510 ワード

要求:与えられた時間形式で指定された時間を出力する
フォーマット説明:2014.09.05について13:14:20
  • yyy:年、2014年
  • yy:年、14
  • MM:月、2人を補います.09
  • M:月、9
  • dd:日付、二人を補完します.05
  • d:日付、5
  • HH:24時間制で、二人を補います.13
  • H:24時間、13
  • hh:12時間で、二人を補います.01
  • h:12時間、1
  • mm:分で、二人を補います.14
  • m:分、14
  • ss:秒、二桁を補完します.
  • s:秒、20
  • w:曜日は、「日」、「一」、「二」、「三」、「四」、「五」、「六」のいずれかで、本デモの結果は五
  • です.
    //       
    function formatDate(time, format) {
        time = new Date(time)
        let f = {
            yyyy: time.getFullYear(),
            yy: String(time.getFullYear()).slice(-2),
            MM: String(time.getMonth() + 1).padStart(2, '0'),
            M: time.getMonth() + 1,
            dd: String(time.getDate()).padStart(2, '0'),
            d: time.getDate(),
            HH: String(time.getHours()).padStart(2, '0'),
            H: time.getHours(),
            hh: String(time.getHours() % 12).padStart(2, '0'),
            h: time.getHours() % 12,
            mm: String(time.getMinutes()).padStart(2, '0'),
            m: time.getMinutes(),
            ss: String(time.getSeconds()).padStart(2, '0'),
            s: time.getSeconds(),
            w: [' ', ' ', ' ', ' ', ' ', ' ', ' '][time.getDay()]
        }
    
        return format.replace(/[A-z]+/ig, $1 => f[$1])
    }