-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfomat_tool.js
67 lines (61 loc) · 1.76 KB
/
fomat_tool.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
'use strict';
const moment = require('moment');
/**
* 格式化数字
* @param {Number} number 格式化前数字
* @param {Number} digit 位数
* @return {Number} 格式化后数字
*/
function formatNumber(number, digit) {
const accuracyNum = Math.pow(10, digit);
return parseFloat(Math.round(number * accuracyNum) / accuracyNum);
}
/**
* 格式化价格
* @param {Number} price 价格
* @return {String} 格式化后的价格
*/
exports.formatPrice = function(price) {
return formatNumber(price, 2).toFixed(2);
};
/**
* 只显示整钱
* @param {Number} price 金钱
* @return {String} 格式化后的金钱
*/
exports.formatMoneny = function(price) {
return formatNumber(price, 0);
};
/**
* 获取长度
* @param {String} text 字符串
*/
exports.getStringLength = function(text, length) {
let curLength = text ? text.length : 0;
return curLength <= length ? curLength : length;
};
/**
* 格式化日期
* @param {Any} dateData 支持时间戳10/13位,日期对象,字符串
* @param {String} format 格式化形式
* @return {String} 格式化后日期
*/
exports.formatDate = function(dateData, format) {
switch(typeof dateData) {
case 'string':
case 'number':
dateData = dateData.toString();
if(isNaN(dateData)) { // 如果是纯字符串
return moment(new Date(dateData)).format(format);
}
if(dateData.length === 10) return moment(new Date(parseInt(dateData) * 1000)).format(format);
if(dateData.length === 13) return moment(new Date(parseInt(dateData))).format(format);
break;
case 'object':
if(dateData instanceof Date) {
return moment().format(format);
}
break;
}
return '-';
};