js时间日期格式化封装

1 篇文章 0 订阅
1 篇文章 0 订阅
本文介绍了如何使用JavaScript进行日期时间的格式化转换,包括通过获取时间对象、使用replace()方法替换格式以及封装成Vue组件的方法。示例代码展示了如何将时间戳转换为指定格式的字符串,例如'yyyy-MM-ddhh:mm:ss',同时考虑了小时12小时制与24小时制、星期和季度的表示。
摘要由CSDN通过智能技术生成

JavaScript日期时间格式化转换

  1. 使用获取时间对象

  2. 格式化 yyyy-MM-dd hh:mm:ss.S
    分别代表含义 年(y)、月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 、时间段(P)

  3. 使用replace()方法替换传入的格式
    详细使用方法参考 replace()

JavaScript代码实现

dateFormats(num,fmts) {
    const date=new Date(num)
    let fmt=fmts || 'yyyy-MM-dd HH:mm:ss'
    var o = {      
      "M+" : date.getMonth()+1, //月份      
      "d+" : date.getDate(), //日      
      "h+" : date.getHours()%12 == 0 ? 12 : date.getHours()%12, //小时简化   
      "H+" : date.getHours(), //小时24制    
      "m+" : date.getMinutes(), //分      
      "s+" : date.getSeconds(), //秒      
      "q+" : Math.floor((date.getMonth()+3)/3), //季度      
      "S" : date.getMilliseconds(), //毫秒 
      "P" : date.getHours()<11?"上午":date.getHours()>13?"下午":"中午"
      };      
      var week = {      
      "0" : "\u65e5",      
      "1" : "\u4e00",      
      "2" : "\u4e8c",      
      "3" : "\u4e09",      
      "4" : "\u56db",      
      "5" : "\u4e94",      
      "6" : "\u516d"     
      };      
      if(/(y+)/.test(fmt)){      
          fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));      
      }
    //   if (/(y+)/.test(fmt)) {
    //     fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
    // }
      if(/(E+)/.test(fmt)){      
          fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "\u661f\u671f" : "\u5468") : "")+week[date.getDay()+""]);      
      }      
      for(var k in o){      
          if(new RegExp("("+ k +")").test(fmt)){      
              fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));      
          }      
      }
    //   for (let k in o) {
    //     if (new RegExp(`(${k})`).test(fmt)) {
    //         let str = o[k] + '';
    //         fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : ('00' + str).substr(str.length));
    //     }
    // } 
      return fmt;   
  }
  //方法调用 参数1 时间戳 参数2 格式化规则
  dateFormats(1654825197868,"yyyy-MM-dd hh:mm:ss")

Vue封装当前时间日期格式化

export function dateFormats(date, fmt) {
	const date=new Date()
    let fmt=fmts || 'yyyy-MM-dd HH:mm:ss'
    var o = {      
      "M+" : date.getMonth()+1, //月份      
      "d+" : date.getDate(), //日      
      "h+" : date.getHours()%12 == 0 ? 12 : date.getHours()%12, //小时简化   
      "H+" : date.getHours(), //小时24制    
      "m+" : date.getMinutes(), //分      
      "s+" : date.getSeconds(), //秒      
      "q+" : Math.floor((date.getMonth()+3)/3), //季度      
      "S" : date.getMilliseconds(), //毫秒 
      "P" : date.getHours()<11?"上午":date.getHours()>13?"下午":"中午"
      };      
      var week = {      
      "0" : "\u65e5",      
      "1" : "\u4e00",      
      "2" : "\u4e8c",      
      "3" : "\u4e09",      
      "4" : "\u56db",      
      "5" : "\u4e94",      
      "6" : "\u516d"     
      };    
       if (/(y+)/.test(fmt)) {
         fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
   		 }
      if(/(E+)/.test(fmt)){      
          fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "\u661f\u671f" : "\u5468") : "")+week[date.getDay()+""]);      
      }     
       for (let k in o) {
         if (new RegExp(`(${k})`).test(fmt)) {
             let str = o[k] + '';
             fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : ('00' + str).substr(str.length));
        }
    } 
      return fmt;   
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值