日期比较相关

/**
 * 传入身份证号码和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);
   }
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 字符串转日期 / 转时间戳 字符串转日期函数: str_to_date(string:timestr,string...
    ximu阅读 3,582评论 0 0
  • MySQL中有很多的有用的函数,特别是日期,在处理业务的时候在数据库中就可以处理,今天就整理一下日期的相关函数 一...
    帅可儿妞阅读 5,809评论 0 0
  • 谭波有位女性朋友,姓张,叫张子苑,人长得还可以,落落大方的,就是有个毛病,喜欢让别人帮她开饮料瓶。 其实开饮料瓶这...
    李旭洋阅读 3,352评论 0 6
  • 你, 很远, 我觉得很近, 他, 很近, 我觉得很远, 只要心有灵犀, 远可以变近, 否则… 近可以变远。
    王雪娣阅读 1,594评论 0 0
  • 2018-05-15 11:04:06 前言 去重是开发中经常会碰到的一个热点问题,不过目前项目中碰到的情况都是后...
    王闲森阅读 2,649评论 0 1

友情链接更多精彩内容