• vue 封装时间格式化和number精确度


    //format.js 公用js
    /**
     * Parse the time to string
     * @param {(Object|string|number)} time
     * @param {string} format
     * @returns {string | null}
     */
    //时间格式化 
    export function formatDate(time,format) {
        if (!time) return "";
        var date=new Date(time);
        var year=date.getFullYear();
        /* 在日期格式中,月份是从0开始的,因此要加0
         * 使用三元表达式在小于10的前面加0,以达到格式统一  如 09:11:05
         * */
        var month= date.getMonth()+1<10 ? "0"+(date.getMonth()+1) : date.getMonth()+1;
        var day=date.getDate()<10 ? "0"+date.getDate() : date.getDate();
        var hours=date.getHours()<10 ? "0"+date.getHours() : date.getHours();
        var minutes=date.getMinutes()<10 ? "0"+date.getMinutes() : date.getMinutes();
        var seconds=date.getSeconds()<10 ? "0"+date.getSeconds() : date.getSeconds();
        // 拼接
        // return year+"-"+month+"-"+day+" "+hours+":"+minutes+":"+seconds;
        
        let result = ''
        switch (format) {
          case 'YYYY':
            result = year
            break
          case 'MM':
            result = month
            break
          case 'DD':
            result = day
            break
          case 'HH':
            result = hours
            break
          case 'mm':
            result = minutes
            break
          case 'ss':
            result = seconds
            break
          case 'HH:mm':
            result = `${hours}:${minutes}`
            break
          case 'HH:mm:ss':
            result = `${hours}:${minutes}:${seconds}`
            break
          case 'YYYY-MM':
            result = `${year}-${month}`
            break
          case 'YYYY-MM-DD':
            result = `${year}-${month}-${day}`
            break
          case 'YYYY/MM/DD':
            result = `${year}/${month}/${day}`
            break
          case 'YYYY-MM-DD HH:mm':
            result =  `${year}-${month}-${day} ${hours}:${minutes}`
            break
          case 'YYYY-MM-DD HH:mm:ss':
            result =  `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
            break
          case 'YYYY-MM-DD 00:00:00':
            result = `${year}-${month}-${day} 00:00:00`
            break
          case 'YYYY/MM/DD':
            result = `${year}/${month}/${day}`
            break
          case 'YYYY/MM/DD HH:mm':
            result = `${year}/${month}/${day} ${hours}:${minutes}`
            break
    
        }
        return result;
      }
    
      /**
     * Parse the time to string
     * @param {(Object|string|number)} value
     * @param {string} format
     * @returns {string | null}
     */
    //时间戳转化
      export function timestamp(value,format){
        if (!value) return "";
        const time = new Date(value * 1000);
        const Y = time.getFullYear()
        const M = (time.getMonth() + 1).toString().padStart(2, '0')
        const D = time.getDate().toString().padStart(2, '0')
        const h = time.getHours().toString().padStart(2, '0')
        const m = time.getMinutes().toString().padStart(2, '0')
        const s = time.getSeconds().toString().padStart(2, '0')
        // return `${Y}-${M}-${D} ${h}:${m}:${s}`
        let result = ''
        switch (format) {
          case 'YYYY':
            result = Y
            break
          case 'MM':
            result = M
            break
          case 'DD':
            result = D
            break
          case 'HH':
            result = h
            break
          case 'mm':
            result = m
            break
          case 'ss':
            result = s
            break
          case 'HH:mm':
            result = `${h}:${m}`
            break
          case 'HH:mm:ss':
            result = `${h}:${m}:${s}`
            break
          case 'YYYY-MM':
            result = `${Y}-${M}`
            break
          case 'YYYY-MM-DD':
            result = `${Y}-${M}-${D}`
            break
          case 'YYYY/MM/DD':
            result = `${Y}/${M}/${D}`
            break
          case 'YYYY-MM-DD HH:mm':
            result =  `${Y}-${M}-${D} ${h}:${m}`
            break
          case 'YYYY-MM-DD HH:mm:ss':
            result =  `${Y}-${M}-${D} ${h}:${m}:${s}`
            break
          case 'YYYY-MM-DD 00:00:00':
            result = `${Y}-${M}-${D} 00:00:00`
            break
          case 'YYYY/MM/DD':
            result = `${Y}/${M}/${D}`
            break
          case 'YYYY/MM/DD HH:mm':
            result = `${Y}/${M}/${D} ${h}:${m}`
            break
        }
        return result;
      }
    
      /**
     * Parse the time to string
     * @param {(Object|string|number)} val
     * @param {string} digit
     * @returns {string | null}
     */
    //数字类型
    // 判断是否为数值  true 数值类型 false 其他
    export function formatNum(val, digit,type) {
      // 异常值判断
      if (val === null || isNaN(val) || val === undefined || val === '' || val === ' ') return '' 
      // 数值 或 字符串数值
      val = parseFloat(val).toFixed(digit)
     
      // 删除尾部的‘0’
      // if (val.endsWith('0')) {
      //   val = val.substring(0, val.lastIndexOf('0'))
      // }
     
      // 删除尾部的‘.’
      if (val.endsWith('.')) {
        val = val.substring(0, val.lastIndexOf('.'))
      }
      // if(type==='money'){ //格式为金额形式的
      //     var intPart = Number(val).toFixed(0); //获取整数部分
      //     var intPartFormat = intPart
      //       .toString()
      //       .replace(/(\d)(?=(?:\d{3})+$)/g, "$1,"); //将整数部分逢三一断
      //     var floatPart = ".00"; //预定义小数部分
      //     var value2Array = val.split(".");
      //     //=2表示数据有小数位
      //     if (value2Array.length == 2) {
      //       floatPart = value2Array[1].toString(); //拿到小数部分
      //       console.log('-intPartFormat--',intPartFormat + "." + floatPart + "0")
      //       if (floatPart.length == 1) {
      //         //补0,
      //         val=intPartFormat + "." + floatPart + "0";
      //       } else {
      //         val= intPartFormat + "." + floatPart;
      //       }
      //     } else {
      //       console.log('-intPartFormat + floatPart--',intPartFormat + floatPart)
      //       val=intPartFormat + floatPart;
      //     }
      // }
      return val
    }
    //引用 vue文件
     formatDateHandle(value, item) {
    //value 参数值  item配置文件时间格式{dateFormat: 'YYYY-MM-DD HH:mm:ss'}
        if (!value) return '';
        this.accountDetails[item.field] = formatDate(value, item.dateFormat);
        return this.accountDetails[item.field];
      },
      formatNumHandle(value, item) {
    //value 参数值  item配置文件时间格式 pattern小数点精确度{numeric{type: 'money',pattern: '2'}}
        if (!value) return '';
        this.accountDetails[item.field] = formatNum(value, item.numeric.pattern, item.numeric.type);
        return this.accountDetails[item.field];
     }
  • 相关阅读:
    MySQL5.7.17解压版安装
    autocomplete初步使用
    前端面试题:驼峰体与匈牙利语法的相互转换
    前端常用正则表达式
    解决npm报错:Module build failed: TypeError: this.getResolve is not a function
    vue实现对语言的切换,结合vue-il8n。
    大量数据处理的一个思路
    不同格式矢量数据源在MapServer上发布服务后切片缓存效率对比
    CentOS7使用yum安装PostgreSQL和PostGIS
    ArcGIS消除图斑重叠错误
  • 原文地址:https://www.cnblogs.com/liujiajiablog/p/15937205.html
Copyright © 2020-2023  润新知