日期比较相关

2019-08-14  本文已影响0人  overflow_hidden
/**
 * 传入身份证号码和num.获取出生日期,性别跟年龄
 * @param UUserCard 身份证号码
 * @param num 1获取出生日期
 *            2 获取性别
 *            3 获取年龄,年龄小于1岁的时候默认为1岁
 * @returns {*}
 * @constructor
 */
function IdCard(UUserCard,num){
    if(num==1){
        //获取出生日期
        birth=UUserCard.substring(6, 10) + "-" + UUserCard.substring(10, 12) + "-" + UUserCard.substring(12, 14);
        return birth;
    }
    if(num==2){
        //获取性别
        if (parseInt(UUserCard.substr(16, 1)) % 2 == 1) {
            //男
            return "男";
        } else {
            //女
            return "女";
        }
    }
    if(num==3){
        //获取年龄
        var myDate = new Date();
        var month = myDate.getMonth() + 1;
        var day = myDate.getDate();
        var age = myDate.getFullYear() -   UUserCard.substring(6, 10) - 1;
        if (UUserCard.substring(10, 12) < month || UUserCard.substring(10, 12) == month && UUserCard.substring(12, 14) <= day) {
            age++;
        }
        if(age <= 0){
            age = 1;
        }
        return age;
    }
}



/**
* 获取自然天数间隔
*
* @param  {String} startTime 开始时间
* @param  {String} endTime   结束时间
* @return {Number}           差值
*/
utilsTime.getNaturalDayDiff = function(startTime, endTime) {
   //将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式
   startTime = startTime.replace(/\-/g, "/");
   endTime = endTime.replace(/\-/g, "/");
   // console.log("getDateDiff", startTime, endTime);
   var sTime = new Date(startTime.slice(0, 10));      //开始时间
   var eTime = new Date(endTime.slice(0, 10));  //结束时间
   // console.log("getDateDiff", startTime, endTime);
   //作为除数的数字
   divNum = 1000 * 3600 * 24;
   return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(divNum));
};



/**
 * 获取两个日期之间间隔的年数
 * @param  {String} startTime 开始时间 xxxx-xx-xx
 * @param  {String} endTime   结束时间 xxxx-xx-xx
 */
utilsTime.getYearDiff = function(startTime,endTime){
  let days = utilsTime.getNaturalDayDiff(startTime,endTime);
  let oldYear = startTime.split("-")[0];
  let thisYear = endTime.split("-")[0];
  var number_of_long_years = 0;
  for(var y=oldYear; y <= thisYear; y++){
    if( (y % 4 == 0 && y % 100 == 0) || y % 400 == 0 ) {
      number_of_long_years++;
    }
  }
  let years = (
    (days)*(thisYear-oldYear))/
    ((number_of_long_years*366)+((thisYear-oldYear-number_of_long_years)*365));
   if(!years){
     return 0;
   }else{
    return parseInt(years);
   }
}

上一篇下一篇

猜你喜欢

热点阅读