js格式化时间 --- 利用正则格式化时间

该方法中需要传入时间戳和需要的时间格式即可, 该方法支持任何形式的时间格式输出,
其中timestamp为传入的时间戳,format为要输出的格式。

function formatterTime (timestamp, format) {
      //format:  "yyyy-m-d h:i:s.S","yyyy年mm月dd日 hh:ii:ss"  default: "yyyy-mm-dd hh:ii:ss"
      var obj = parseInt(timestamp)
      var date = new Date(obj)
      var data = {
        "m+": date.getMonth() + 1,                 //月   
        "d+": date.getDate(),                    //日   
        "h+": date.getHours(),                   //小时   
        "i+": date.getMinutes(),                 //分   
        "s+": date.getSeconds(),                 //秒   
        "q+": Math.floor((date.getMonth() + 3) / 3), //季度   
        "S": date.getMilliseconds()             //毫秒   
      };
      if (!format) {
        format = "yyyy-mm-dd hh:ii:ss"
      }
      if (/(y+)/.test(format)) {
        // date.getFullYear() + ""  转为字符串
        format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length))
      }
      console.log(format)
      for (var k in data) {
        if (new RegExp("(" + k + ")").test(format)) {
          format = format.replace(RegExp.$1, (RegExp.$1.length === 1) ? (data[k]) : (("00" + data[k]).substring(("" + data[k]).length)))
        }
      }
      return format
  }

亲测结果如下:

let timestamp = 1564390402655

formatterTime(timestamp, 'yyyy-mm-dd hh:ii:ss')  
 // "2019-07-29 16:53:22"

formatterTime(timestamp, 'yyyy年mm月dd hh时ii分ss秒')   
// "2019年07月29 16时53分22秒"

formatterTime(timestamp, 'hh:ii:ss')  
 // "16:53:22"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。