format.js 3.01 KB

/**
 * @description 手机号格式化显示 123****5678
 * @param {String|Number} num
 * @returns {String}
 */
export function formatPhoneNo(num) {
  return num.toString().replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
}

/**
 * 格式化Email为 h****@b2bwings.com 的格式
 * @param {*} str 
 */
export function formatEmail(str) {
  if (!str) {
    return ''
  }
  let i = str.indexOf('@')
  if (i <= 0) {
    return ''
  }
  let start = str.substring(0, 1)
  let end = str.substring(i)
  return `${start}****${end}`
}

/**
 * @description 数字千分位
 * @param {number|string} num 
 * @author sheng
 * @date 2020/04/26
 */
export function thousandBitSeparator(num) {
  return num && (num.toString().indexOf('.') != -1
    ? num.toString().replace(/(\d)(?=(\d{3})+\.)/g, function ($0, $1) {
      return $1 + ",";
    }) : num.toString().replace(/(\d)(?=(\d{3})+$)/g, function ($0, $1) {
      return $1 + ",";
    }));
}

/**
 * 获取该日开始时间 零时零分零秒
 * @param {number} stmp 毫秒时间戳
 * @returns {number} 毫秒时间戳
 */
export function getDateStartTime(stmp) {
  return new Date(new Date(Number(stmp)).toLocaleDateString()).getTime()
}

/**
 * 获取该日结束时间 23时59分59秒
 * @param {date} date 毫秒时间戳
 * @returns {number} 毫秒时间戳
 */
export function getDateEndTime(stmp) {
  return new Date(
    new Date(new Date(Number(stmp)).toLocaleDateString()).getTime() +
    24 * 60 * 60 * 1000 -
    1
  )
}

/**
 * 日期格式化
 * @param {*} fmt 
 * @param {*} time 毫秒时间戳 
 */
export function dateFormat(fmt, time) {
  let ret
  let newDate = new Date()  //实例化一个Date对象
  newDate.setTime(time)
  const opt = {
    "Y+": newDate.getFullYear().toString(),        // 年
    "M+": (newDate.getMonth() + 1).toString(),     // 月
    "D+": newDate.getDate().toString(),            // 日
    "h+": newDate.getHours().toString(),           // 时
    "m+": newDate.getMinutes().toString(),         // 分
    "s+": newDate.getSeconds().toString()          // 秒
  };
  for (let k in opt) {
    ret = new RegExp("(" + k + ")").exec(fmt)
    if (ret) {
      fmt = fmt.replace(ret[1], (ret[1].length == 1) ?
        (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
    }
  }
  return fmt
}

/**
 * 分钱转换为元
 * @param {*} num 
 */
export function fenToYuan(num) {
  return (Number(num) / 100).toFixed(2)
}

/**
 * 请求参数格式化为字符串
 * @param {Object} query 
 * @author sheng
 * @date 2020/06/23
 */
export function formatQuery(query) {
  if (typeof query !== 'object') {
    return ''
  }
  let params = []
  if (query) {
    for (let item in query) {
      let vals = query[item]
      if (vals !== undefined) {
        params.push(item + '=' + query[item])
      }
    }
  }
  return params.length ? '?' + params.join('&') : ''
}

/**minutes */
export function getRemainTime(minutes) {
  /**剩余小时 */
  let hour = Math.floor(minutes / 60)
  /**剩余分钟 */
  let min = Math.round(minutes % 60)
  return hour <= 0 ? `${min}分钟` : `${hour}小时${min}分钟`
}