JavaScript 常用方法集合

版权声明:本文为博主原创文章,欢迎大家转载 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
}

猜你喜欢

转载自blog.csdn.net/Wjhsmart/article/details/86523259