版权声明:本文为博主原创文章,欢迎大家转载 https://blog.csdn.net/Wjhsmart/article/details/86523259
一、说明
这篇日志用于记录工作中经常使用到的一些通用的js方法,用于做做笔记
二、code
1、计算时间,传入秒,计算有多少天
/**
* 秒转天
* @param mss 需要转换的数值,单位秒
*/
function secongToDay(mss) {
var days = parseInt(mss / (60 * 60 * 24));
var hours = parseInt((mss % (60 * 60 * 24)) / (60 * 60));
var minutes = parseInt((mss % (60 * 60)) / 60);
var seconds = mss % 60;
return days + ' 天 ' + hours + ' 小时 ' + minutes + ' 分 ' + seconds + ' 秒 ';
}
2、根据日期计算年龄
/**
* 根据日期计算年龄
* @param strBirthday 生日日期字符串 YYYY-MM-dd格式
*/
function dateCountAge(strBirthday) {
var returnAge
var strBirthdayArr = strBirthday.split('-')
var birthYear = strBirthdayArr[0]
var birthMonth = strBirthdayArr[1]
var birthDay = strBirthdayArr[2]
var d = new Date()
var nowYear = d.getFullYear()
var nowMonth = d.getMonth() + 1
var nowDay = d.getDate()
if (nowYear == birthYear) {
returnAge = 0 //同年 则为0岁
} else {
var ageDiff = nowYear - birthYear //年之差
if (ageDiff > 0) {
if (nowMonth == birthMonth) {
var dayDiff = nowDay - birthDay //日之差
if (dayDiff < 0) {
returnAge = ageDiff - 1
} else {
returnAge = ageDiff
}
} else {
var monthDiff = nowMonth - birthMonth //月之差
if (monthDiff < 0) {
returnAge = ageDiff - 1
} else {
returnAge = ageDiff
}
}
} else {
returnAge = -1 //返回-1 表示出生日期输入错误 晚于今天
}
}
return returnAge //返回周岁年龄
}
3、生成0-9的随机函数
/**
* 生成0-9的随机函数
* @param min 最小值
* @param max 最大值
**/
function randomNum(min, max){
return Math.floor(min+Math.random()*(max-min));
}
random(0,9);
4、整数金额转成大写
/**
* 整数金额转成大写
* @param n 整数
**/
function moneyUpperCase(n) {
var digit = [
'零', '壹', '贰', '叁', '肆',
'伍', '陆', '柒', '捌', '玖'
];
var unit = [
['元', '万', '亿'],
['', '拾', '佰', '仟']
];
var s = '';
for (var i = 0; i < unit[0].length && n > 0; i++) {
var p = '';
for (var j = 0; j < unit[1].length && n > 0; j++) {
p = digit[n % 10] + unit[1][j] + p;
n = Math.floor(n / 10);
}
s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
}
return s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^$/, '零元') + '整';
}
5、获取本周、上周开始和结束时间
/**
* 取上周和本周的开始和结束时间
* 上周的开始时间:getTime(7)
* 上周的结束时间:getTime(1)
* 本周的开始时间:getTime(0)
* 本周的结束时间:getTime(-6)
*/
function getTime(n) {
var now = new Date()
var year = now.getFullYear()
//因为月份是从0开始的,所以获取这个月的月份数要加1才行
var month = now.getMonth() + 1
var date = now.getDate()
var day = now.getDay()
//判断是否为周日,如果不是的话,就让今天的day-1(例如星期二就是2-1)
if (day !== 0) {
n = n + (day - 1)
} else {
n = n + day
}
if (day) {
//这个判断是为了解决跨年的问题
if (month > 1) {
month = month
} else {
//这个判断是为了解决跨年的问题,月份是从0开始的
year = year - 1
month = 12
}
}
now.setDate(now.getDate() - n)
year = now.getFullYear()
month = now.getMonth() + 1
date = now.getDate()
var s = year + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date)
return s
}