时间格式化方法

//param

time {(Object | string | number)} 需要格式化的时间

cFormat  {string} 格式化规则

return {string | null} 格式化后的时间

、、、、、、、、、、、、、、

changeDate(time,cformat){

       if(arguments.length===0||!time){

         return null

       }

       const format=cformat || '{y}-{m}-{d} {h}:{i}:{s}'

       let date;

       if(typeof time==='object'){

         date=time

       }else{

         if((typeof time==='string')){

           if((/^[0-9]+$/.test(time))){

             time=parseInt(time)

           }else{

             time=time.replace(new RegExp(/-/gm),'/')

           }

         }

          if((typeof time==='number')&&(time.toString().length===10)){

         time=time*1000

       }

       date=new Date(time)

       }

       const formatObj={

         y:date.getFullYear(),

         m:date.getMonth()+1,

         d:date.getDate(),

         h:date.getHours(),

         i:date.getMinutes(),

         s:date.getSeconds(),

         a:date.getDay()

       }

      const time_str=format.replace(/{([ymdhisa])+}/g,(result,key)=>{

        const value=formatObj[key]

        if(key==='a'){return ['日','一','二','三','四','五','六'][value]}

        return value.toString().padStart(2,'0')

      })

      console.log('time_str',time_str);

      return time_str

     }

其中,padStart()用于头部补全,padEnd()用于尾部补全。

一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。

如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。

你可能感兴趣的:(前端开发,html,javascript,vue)