使用方式:
在使用的頁(yè)面引入:例:import { tools_downLoad} from '@/libs/date'
使用: tools_downLoad(路徑)
菜單:
1、下載壓縮包文件
2、數(shù)字金額轉(zhuǎn)文字
3、時(shí)間增加或減少幾天
4、傳入時(shí)間戳,展示正常的時(shí)間格式
5、YYYY月MM月DD日轉(zhuǎn)換為YYYY-MM-DD
6、秒轉(zhuǎn)化成時(shí)分秒
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、數(shù)字金額轉(zhuǎn)文字 函數(shù)
/**
*數(shù)字金額轉(zhuǎn)文字 函數(shù)
*
* @export
* @param {*} money
* @returns
*/
export function convertCurrency(money) {
//漢字的數(shù)字
var cnNums = new Array('零', '壹', '貳', '叁', '肆', '伍', '陸', '柒', '捌', '玖');
//基本單位
var cnIntRadice = new Array('', '拾', '佰', '仟');
//對(duì)應(yīng)整數(shù)部分?jǐn)U展單位
var cnIntUnits = new Array('', '萬(wàn)', '億', '兆');
//對(duì)應(yīng)小數(shù)部分單位
var cnDecUnits = new Array('角', '分', '毫', '厘');
//整數(shù)金額時(shí)后面跟的字符
var cnInteger = '整';
//整型完以后的單位
var cnIntLast = '元';
//最大處理的數(shù)字
var maxNum = 999999999999999.9999;
//金額整數(shù)部分
var integerNum;
//金額小數(shù)部分
var decimalNum;
//輸出的中文金額字符串
var chineseStr = '';
//分離金額后用的數(shù)組,預(yù)定義
var parts;
if (money == '') {
return '';
}
money = parseFloat(money);
if (money >= maxNum) {
//超出最大處理數(shù)字
return '';
}
if (money == 0) {
chineseStr = cnNums[0] + cnIntLast + cnInteger;
return chineseStr;
}
//轉(zhuǎn)換為字符串
money = money.toString();
if (money.indexOf('.') == -1) {
integerNum = money;
decimalNum = '';
} else {
parts = money.split('.');
integerNum = parts[0];
decimalNum = parts[1].substr(0, 4);
}
//獲取整型部分轉(zhuǎn)換
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;
}
//小數(shù)部分
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、時(shí)間增加或減少幾天
/*
*時(shí)間增加或減少幾天
* date 當(dāng)前日期 例: 2020-06-10
* days 增加的天數(shù) 例: 30
* return 增加后的天數(shù)
*/
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、傳入時(shí)間戳,展示正常的時(shí)間格式 例: formatDate(new Date(時(shí)間戳), '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日轉(zhuǎn)換為YYYY-MM-DD
/**
*@description YYYY月MM月DD日轉(zhuǎn)換為YYYY-MM-DD
* @param {string}
* @returns {string}
*/
export function tools_transDate(str) {
return str.replace('年', '-').replace('月', '-').replace('日', '');
}
6、秒轉(zhuǎn)化成時(shí)分秒
/**
*@description 秒轉(zhuǎn)化成時(shí)分秒
* @param {string}
* @returns {string}
*/
export function formatSeconds(value) {
var secondTime = parseInt(value); // 秒
var minuteTime = 0; // 分
var hourTime = 0; // 小時(shí)
if (secondTime > 60) { // 如果秒數(shù)大于60,將秒數(shù)轉(zhuǎn)換成整數(shù)
// 獲取分鐘,除以60取整數(shù),得到整數(shù)分鐘
minuteTime = parseInt(secondTime / 60);
// 獲取秒數(shù),秒數(shù)取佘,得到整數(shù)秒數(shù)
secondTime = parseInt(secondTime % 60);
// 如果分鐘大于60,將分鐘轉(zhuǎn)換成小時(shí)
if (minuteTime > 60) {
// 獲取小時(shí),獲取分鐘除以60,得到整數(shù)小時(shí)
hourTime = parseInt(minuteTime / 60);
// 獲取小時(shí)后取佘的分,獲取分鐘除以60取佘的分
minuteTime = parseInt(minuteTime % 60);
}
}
var result = "" + parseInt(secondTime) + "秒";
if (minuteTime > 0) {
result = "" + parseInt(minuteTime) + "分" + result;
}
if (hourTime > 0) {
result = "" + parseInt(hourTime) + "小時(shí)" + result;
}
return result;
}
7、身份證算出出生年月和性別
/**
* @description 身份證算出出生年月和性別
* @param [string] 身份證號(hào)碼
*/
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);
//獲取當(dāng)前年月日并計(jì)算年齡
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;
}