判断一个人的年龄是否满足18岁

思路

判断一个人的年龄是否大于18岁,可以分为以下几步:

1、获取当前的年、月、日,并且将年份减去18,得到十八年前的年份;
2、判断月份是否为2月且日大于等于28,如果是,则执行判断18年前是否为平年,若是平年,当前日期为28,若是闰年,当前日期为29.
3、通过new Date方法获取指定时间的日期对象,并获取他的时间戳
4、通过用户选中的时间戳和18年前的时间戳比较,若用户选中时间戳大于18年前时间戳,则用户不满足18周岁,否则满足。

代码附上
/*
* 判断平年闰年
* y:年份数字,四位
* */
function isOrdinaryYear(y) {
    if((y%4===0 && y % 100 !== 0)|| y % 400 === 0 ){
        return false
    }
    return true;
}
/*
* 判断是否满足18岁
* time : 毫秒级时间戳,用户选中日期的时间戳
* */
function satisfy(time) {
    var nowDate = new Date(); // 当前时间
    var mouth = nowDate.getMonth()+1;
    var day = nowDate.getDate();
    var year = nowDate.getFullYear()-18;
    if (mouth === 2 && day >= 28){
        day = isOrdinaryYear(year) ? 28 : 29;
    }
    var oldDate = new Date(year+'-'+mouth+'-'+day).getTime();
    return oldDate < time ? '不满足' : '满足';
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值