通过 JavaScript(缩称 JS)计算距离生日还有多少天,根据出生年月日计算年龄的方法。
计算距离下次生日还有多少天
这里是借助 moment 实现。
getBirthdayFun(){
// 获取到今年的生日
let birthdayTime = moment().format('YYYY-') + '12-19'
// 通过时间戳 去判断当前的时间戳是否大于今年生日的时间戳
if (moment().unix() >= moment(birthdayTime).unix()) {
// 如果大于的话,那么就在今年的生日上再添加一年,已达到获取下次生日的时间
birthdayTime = moment(birthdayTime).add(1, 'y').format('YYYY-MM-DD')
}
// 这个直接通过计算 (下次生日的时间戳 - 当前日期的时间戳) / (60 * 60 * 24) 最后求出来的就是 XX 天
return parseInt(
(moment(birthdayTime).unix() - moment().unix()) / (60 * 60 * 24)
)
}
距离生日还有多少天
<script>
//给出生日的月份和日期,计算还有多少天过生日
function getDaysToBirthday(month, day) {
var nowTime = new Date();
var thisYear = nowTime.getFullYear();
//今年的生日
var birthday = new Date(thisYear, month - 1, day);
//今年生日已过,则计算距离明年生日的天数
if (birthday < nowTime) {
birthday.setFullYear(nowTime.getFullYear() + 1);
}
var timeDec = birthday - nowTime;
var days = timeDec / (24 * 60 * 60 * 1000);
return Math.ceil(days);
}
getDaysToBirthday(11, 2);
</script>
根据出生年月日计算年龄
<script>
//是否闰年
function isLeap(year){
return (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);
}
//根据出生年月日,计算年龄
function getAge(year, month, day) {
//得到当前日期
var nowTime = new Date();
var age = nowTime.getFullYear() - year;//粗略计算出年龄
//若生日是 2 月 29 日,且今年不是闰年,则今年生日日期按 28 日计算
if(month === 2 && day === 29 && !isLeap(nowTime.getFullYear())){
day = 28;
}
//得到今年的生日日期
var nowBirthday = new Date(nowTime.getFullYear(), month - 1, day);
console.log(nowBirthday, nowTime);
if(nowBirthday > nowTime){//若今年的生日没有过,则减一岁
age--;
}
return age;
}
console.log(getAge(2000, 2, 29));
</script>
「点点赞赏,手留余香」
还没有人赞赏,快来当第一个赞赏的人吧!
给弥雅打赏
× 予人玫瑰,手有余香
- 2¥
- 5¥
- 15¥
- 20¥
- 25¥
¥5
声明:本文来自弥雅投稿,不代表深云太熹中文网立场,版权归原作者所有,欢迎分享本文,转载请保留出处!