使用方式:
在使用的页面引入:例:import { tools_downLoad} from '@/libs/date'
使用: tools_downLoad(路径)
菜单:
1、下载压缩包文件
2、数字金额转文字
3、时间增加或减少几天
4、传入时间戳,展示正常的时间格式
5、YYYY月MM月DD日转换为YYYY-MM-DD
6、秒转化成时分秒
7、身份证算出出生年月和性别
1、下载文件:
/**
* @description 下载文件
*
* @param [string] path 路径
*/
export function tools_downLoad(path) {
let str1 = path.substr(0, 1);
let pathN = '';
if (str1 === '/') {
pathN = path;
} else {
pathN = '/' + path;
}
var eleLink = document.createElement("a");
eleLink.setAttribute('target', '_blank')
var strs = pathN.split("/");
for (var i = 0; i < strs.length; i++) {
if (i === strs.length - 1) {
var filename = strs[i];
}
}
eleLink.download = filename;
eleLink.style.display = "none";
eleLink.href = path;
document.body.appendChild(eleLink);
eleLink.click();
document.body.removeChild(eleLink);
}
2、数字金额转文字 函数
/**
*数字金额转文字 函数
*
* @export
* @param {*} money
* @returns
*/
export function convertCurrency(money) {
//汉字的数字
var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
//基本单位
var cnIntRadice = new Array('', '拾', '佰', '仟');
//对应整数部分扩展单位
var cnIntUnits = new Array('', '万', '亿', '兆');
//对应小数部分单位
var cnDecUnits = new Array('角', '分', '毫', '厘');
//整数金额时后面跟的字符
var cnInteger = '整';
//整型完以后的单位
var cnIntLast = '元';
//最大处理的数字
var maxNum = 999999999999999.9999;
//金额整数部分
var integerNum;
//金额小数部分
var decimalNum;
//输出的中文金额字符串
var chineseStr = '';
//分离金额后用的数组,预定义
var parts;
if (money == '') {
return '';
}
money = parseFloat(money);
if (money >= maxNum) {
//超出最大处理数字
return '';
}
if (money == 0) {
chineseStr = cnNums[0] + cnIntLast + cnInteger;
return chineseStr;
}
//转换为字符串
money = money.toString();
if (money.indexOf('.') == -1) {
integerNum = money;
decimalNum = '';
} else {
parts = money.split('.');
integerNum = parts[0];
decimalNum = parts[1].substr(0, 4);
}
//获取整型部分转换
if (parseInt(integerNum, 10) > 0) {
var zeroCount = 0;
var IntLen = integerNum.length;
for (var i = 0; i < IntLen; i++) {
var n = integerNum.substr(i, 1);
var p = IntLen - i - 1;
var q = p / 4;
var m = p % 4;
if (n == '0') {
zeroCount++;
} else {
if (zeroCount > 0) {
chineseStr += cnNums[0];
}
//归零
zeroCount = 0;
chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
}
if (m == 0 && zeroCount < 4) {
chineseStr += cnIntUnits[q];
}
}
chineseStr += cnIntLast;
}
//小数部分
if (decimalNum != '') {
var decLen = decimalNum.length;
for (var i = 0; i < decLen; i++) {
var n = decimalNum.substr(i, 1);
if (n != '0') {
chineseStr += cnNums[Number(n)] + cnDecUnits[i];
}
}
}
if (chineseStr == '') {
chineseStr += cnNums[0] + cnIntLast + cnInteger;
} else if (decimalNum == '') {
chineseStr += cnInteger;
}
return chineseStr;
}
3、时间增加或减少几天
/*
*时间增加或减少几天
* date 当前日期 例: 2020-06-10
* days 增加的天数 例: 30
* return 增加后的天数
*/
export function addDate(date, days) {
var d = new Date(date);
d.setDate(d.getDate() + days);
var month = d.getMonth() + 1;
var day = d.getDate();
if (month < 10) {
month = "0" + month;
}
if (day < 10) {
day = "0" + day;
}
var val = d.getFullYear() + "-" + month + "-" + day;
return val;
}
4、传入时间戳,展示正常的时间格式 例: formatDate(new Date(时间戳), 'yyyy-MM-dd')
export function formatDate (date, fmt) {
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
let o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds()
};
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
let str = o[k] + '';
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
}
}
return fmt;
};
function padLeftZero (str) {
return ('00' + str).substr(str.length);
}
5、YYYY月MM月DD日转换为YYYY-MM-DD
/**
*@description YYYY月MM月DD日转换为YYYY-MM-DD
* @param {string}
* @returns {string}
*/
export function tools_transDate(str) {
return str.replace('年', '-').replace('月', '-').replace('日', '');
}
6、秒转化成时分秒
/**
*@description 秒转化成时分秒
* @param {string}
* @returns {string}
*/
export function formatSeconds(value) {
var secondTime = parseInt(value); // 秒
var minuteTime = 0; // 分
var hourTime = 0; // 小时
if (secondTime > 60) { // 如果秒数大于60,将秒数转换成整数
// 获取分钟,除以60取整数,得到整数分钟
minuteTime = parseInt(secondTime / 60);
// 获取秒数,秒数取佘,得到整数秒数
secondTime = parseInt(secondTime % 60);
// 如果分钟大于60,将分钟转换成小时
if (minuteTime > 60) {
// 获取小时,获取分钟除以60,得到整数小时
hourTime = parseInt(minuteTime / 60);
// 获取小时后取佘的分,获取分钟除以60取佘的分
minuteTime = parseInt(minuteTime % 60);
}
}
var result = "" + parseInt(secondTime) + "秒";
if (minuteTime > 0) {
result = "" + parseInt(minuteTime) + "分" + result;
}
if (hourTime > 0) {
result = "" + parseInt(hourTime) + "小时" + result;
}
return result;
}
7、身份证算出出生年月和性别
/**
* @description 身份证算出出生年月和性别
* @param [string] 身份证号码
*/
export function tools_calcIdentiyInfo(IDCard) {
// 获取性别
let sex = parseInt(IDCard.substr(16, 1)) % 2 == 1 ? '男' : '女';
let brith = IDCard.substring(6, 10) + "-" + IDCard.substring(10, 12) + "-" + IDCard.substring(12, 14);
//获取出生年月日
//IDCard.substring(6,10) + "-" + IDCard.substring(10,12) + "-" + IDCard.substring(12,14);
var yearBirth = IDCard.substring(6, 10);
var monthBirth = IDCard.substring(10, 12);
var dayBirth = IDCard.substring(12, 14);
//获取当前年月日并计算年龄
var myDate = new Date();
var monthNow = myDate.getMonth() + 1;
var dayNow = myDate.getDay();
var age = myDate.getFullYear() - yearBirth;
if (monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)) {
age--;
}
let obj = {
sex,
birth: brith,
age
}
return obj;
}
网友评论