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 结果为 五
示例1

输入:
formatDate(new Date(1409894060000), 'yyyy-MM-dd HH:mm:ss 星期w')

输出:
2014-09-05 13:14:20 星期五
 

——————————————————————————————————————————个人笔记

function formatDate(datetime, format) {
  const year = datetime.getFullYear();
  const month = datetime.getMonth() + 1;
  const date = datetime.getDate();
  const hour = datetime.getHours();
  const minute = datetime.getMinutes();
  const second = datetime.getSeconds();
  const day = datetime.getDay();
  const dayName = ['日', '一', '二', '三', '四', '五', '六'][day];
  const addZero = (num) => num < 10 ? ("0" + num) : num;
  return format.replace(/(yyyy|yy|MM|M|dd|d|HH|H|hh|h|mm|m|ss|s|w)/g, function(match) {
    switch(match) {
      case "yyyy":
        return year;
      case "yy":
        return year % 100;
      case "MM":
        return addZero(month);
      case "M":
        return month;
      case "dd":
        return addZero(date);
      case "d":
        return date;
      case "HH":
        return addZero(hour);
      case "H":
        return hour;
      case "hh":
        return addZero(hour % 12);
      case "h":
        return hour % 12;
      case "mm":
        return addZero(minute);
      case "m":
        return minute;
      case "ss":
        return addZero(second);
      case "s":
        return second;
      case "w":
        return dayName;
    }
  });
}

总结

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/291398.html

(0)
上一篇 2022年10月18日
下一篇 2022年10月18日

相关推荐

发表回复

登录后才能评论