bia
Version:
a tool for download git repository
96 lines (89 loc) • 2.48 kB
JavaScript
/*
* @Author: hzxulin@yeah.net
* @Date: 2020-02-26 12:04:04
* @Last Modified by: hzxulin@yeah.net
* @Last Modified time: 2020-02-26 18:19:06
*/
const path = require('path')
const fse = require('fs-extra')
const moment = require('moment')
const colors = require('colors')
const TIME_CONFIG = require('../../config/time.json')
/**
* 获取并输出当前format
*/
const getFormat = () => {
return new Promise((resolve, reject) => {
try {
const data = TIME_CONFIG.format
if (!data) {
console.log(colors.red('==当前未设置日期格式, 请先设置=='))
} else {
console.log('\r\n当前已设置日期格式:' + colors.green(`\t${data}\r\n`))
}
resolve(data)
} catch (err) {
reject(err)
}
})
}
/**
* 设置format的值
* @param {string} format 时间格式化的模板
*/
const setFormat = (format) => {
return new Promise((resolve, reject) => {
const res = Object.assign(TIME_CONFIG, {
format,
})
let dist = path.resolve(__dirname, '../../config/time.json')
let content = JSON.stringify(res, null, 4)
fse.outputFile(dist, content, err => {
if (err) {
reject(err)
} else {
resolve()
}
})
})
}
/**
* 格式化时间戳
* @param {string} timestamp 时间戳
* @return {string} 时间格式
*/
const formatTimestamp = (timestamp) => {
return new Promise((resolve, reject) => {
if (/\d{13}/.test(timestamp)) {
const dateStr = moment(+timestamp).format(TIME_CONFIG.format)
resolve(dateStr)
} else if (/\d{10}/.test(timestamp)) {
const dateStr = moment(timestamp * 1000).format(TIME_CONFIG.format)
resolve(dateStr)
} else {
reject(new Error('时间戳格式错误'))
}
})
}
/**
* 格式化时间格式
* @param {string} timestamp 时间戳
* @return {string} 时间戳
*/
const formatDate = (dateStr) => {
return new Promise((resolve, reject) => {
try {
dateStr = dateStr == 'undefined' ? new Date().getTime() : dateStr
const timestamp = moment(dateStr).valueOf()
resolve(timestamp)
} catch (err) {
reject(err)
}
})
}
module.exports = {
getFormat,
setFormat,
formatTimestamp,
formatDate,
}