Js日期时间格式转换

在开发过程中,我们可能经常遇到不同的需求,也就需要不同的时间格式去展示。这里提供一个可以将任意形式的时间,转换为自己想要的时间格式。话不多说贴代码。

const formatTime = (format, date) => {
  if (!format) {
    return "";  
  }
  if (!isNaN(Number(date))) {
    date = new Date(Number(date));
  } else if (isNaN(Number(date))) {
    date = new Date(Date.parse(date));
  }
  var dealNum = function (num) {
    if (num < 10) {
      return `0${num}`;
    } else {
      return num;
    }
  };
  var formatArr = ['Y', 'm', 'd', 'H', 'i', 's'];
  for (var i = 0; i < formatArr.length; i++) {
    switch (formatArr[i]) {
      case 'Y':
        format = format.replace(formatArr[i], date.getFullYear());
        break;
      case 'm':
        format = format.replace(formatArr[i], dealNum(date.getMonth() + 1));
        break;
      case 'd':
        format = format.replace(formatArr[i], dealNum(date.getDate()));
        break;
      case 'H':
        format = format.replace(formatArr[i], dealNum(date.getHours()));
        break;
      case ‘i’:
        format = format.replace(formatArr[i], dealNum(date.getMinutes()));
        break;
      case 's':
        format = format.replace(formatArr[i], dealNum(date.getSeconds()));
        break;
    }
  }
  return format;
}

第一个参数为需要的时间格式(Y-m-d H-i-s),中间字符可以是任意字符,也可以只要其中的某一段,第二个为需要转化的时间对象,可以是具体时间,时间对象,以及时间戳。

调用:formatTime("Y年m月d日", new Date()) //2020年12月18日

如果在使用过程中有什么问题或者是建议,希望大家不要嫌麻烦 在底下评论中提出来,小编看到后会第一时间就回复大家

你可能感兴趣的:(Js日期时间格式转换)