miniprogram-logger-plus
Version:
一款高效易用且可扩展的小程序日志工具
80 lines (71 loc) • 2 kB
JavaScript
/**
* 对数字补零到指定位数
* @param {number} number 被格式化的数字
* @param {number} digit 格式化的位数
* @returns {string}
*/
function zerofill(number, digit = 2) {
const zero = '0'
for (let i = 0; i < digit; i++) {
if (number < Math.pow(10, i + 1)) {
const str = zero.repeat(digit - i - 1) + number.toString()
return str
}
}
return number
}
/** 返回当前时间的标准格式 */
module.exports.nowTimeString = function nowTimeString() {
const time = new Date()
const year = time.getFullYear()
const month = zerofill(time.getMonth())
const day = zerofill(time.getDate())
const hour = zerofill(time.getHours())
const minute = zerofill(time.getMinutes())
const second = zerofill(time.getSeconds())
const millisecond = zerofill(time.getMilliseconds(), 3)
const str = `${year}-${month}-${day} ${hour}:${minute}:${second}.${millisecond}`
return str
}
/**
* 将毫秒数格式化成文本,例如:'3h 5m 11s 111ms'
* @param {number} ms 待格式化的毫秒数
*/
module.exports.formatMsString = function formatMsString(ms) {
const s = 1000
const m = s * 60
const h = m * 60
const d = h * 24
/** 分隔符 */
const sep = '.'
/** 最终拼接的字符串 */
let str = ''
/** 待操作的剩余值 */
let rest = ms
if (rest === 0) {
return '0ms'
}
if (rest >= h) {
const hour = Math.floor(rest / h)
rest -= hour * h
str = `${hour}h`
}
if (rest >= m) {
const minute = Math.floor(rest / m)
rest -= minute * m
str += str ? `${sep}${minute}m` : `${minute}m`
return str
}
if (rest >= s) {
const second = Math.floor(rest / s)
rest -= second * s
str += str ? `${sep}${second}s` : `${second}s`
return str
}
if (rest > 0) {
const millisecond = Math.floor(rest)
str += str ? `${sep}${millisecond}ms` : `${millisecond}ms`
}
return str
}