题解 | #时间格式化输出#

时间格式化输出

http://www.nowcoder.com/practice/a789783e7c984f10a0bf649f6d4e2d59

function formatDate(d, formatter = 'yyyy-MM-dd HH:mm:ss') {
  const matches = {
    'y+': d.getFullYear(),          // 年
    'M+': d.getMonth() + 1,         // 月
    'd+': d.getDate(),              // 日
    'H+': d.getHours(),             // 时 (24h制)
    'h+': d.getHours() % 12,        // 时 (12h制)
    'm+': d.getMinutes(),           // 分
    's+': d.getSeconds(),           // 秒
    'w': '日一二三四五六'[d.getDay()] // 周
  }
  for (let symbol in matches) {
    if (RegExp(`(${symbol})`).test(formatter)) {   // 拼接括号()用于创建捕获组
      const val = matches[symbol], len = RegExp.$1.length // RegExp.$1就是formatter中捕获到的yyyy MM dd
      let replace = len === 1 ? val : ('000' + val).slice(-len) // 补零
      formatter = formatter.replace(RegExp.$1, replace)
    }
  }
  return formatter;
}

// ==TEST==
let d1 = new Date();
console.log(formatDate(d1))
全部评论

相关推荐

牛客101244697号:这个衣服和发型不去投偶像练习生?
点赞 评论 收藏
分享
寿命齿轮:实习就一段还拉了,项目一看就不是手搓,学历也拉了,技术栈看着倒是挺好,就是不知道面试表现能咋样。 不过现在才大三,争取搞两端大厂实习,或者一个纯个人项目+一段大厂,感觉秋招还是未来可期。
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务