猫工具站
帮助中心 猫Blog 关于我们 广告合作 EN

年龄计算器

根据出生日期精确计算年龄,支持实时倒计时。

— 岁
—
月
—
天
—
小时
选择出生日期开始计算

相关指南

BMI、年龄、日期三台计算器:哪些数字能信,什么时候不能信
BMI 页是先四舍五入再分档,切单位会把你的数字改写掉;年龄页的计数器锚在 UTC 零点,清空输入框后秒表还在跑;日期页按本地零点算天数,遇到夏令时会少一天。下面每个数字都是在页面本身上跑出来的。

Advertisement

一次给出四个数字

选好出生日期后,页面同时算出四个结果:周岁、一共多少个月、一共多少天、一共多少小时,最后还有一行正在走的生日倒计时。前两个是日常说法里的年龄,后两个是累计量——填保育、体检之类要求「按月龄」的表格时用得上,不适合用作法律文件里的依据。

所有计算都在你自己的浏览器里完成,日期不会被发送到服务器。页面每 1000 毫秒重算一次,所以把标签页开着,倒计时会一直往下走。

周岁是按日历算的

周岁用的是日历算法:先用当前年份减出生年份,再检查今年的生日有没有到,没到就减 1。也就是说数字在你生日当天变化,而不是 1 月 1 日,这跟你自己掰手指算出来的结果是一致的。

月数这一项是累计量,换算用的是「平均一个月 30.44 天」(即 365.25 ÷ 12),代码里直接对经过的毫秒数做除法并向下取整。因为 12 × 30.44 = 365.28 比一个回归年略长,跨度几十年时,这个月数会比你在日历上一个月一个月数出来的结果差一点。

天数为什么可能比你手算的少一天

日期输入框给出的值是 年-月-日 这样的字符串,浏览器会把它按 UTC 零点来解析,换算到北京时间就是出生当天早上 8 点。天数和小时数都是从这一刻起累计的,所以如果你按「出生当天零点」手算,在东八区的时间早于早上 8 点时,页面显示的天数会正好少 1 天。

这不是算错,而是起算点不同。需要严格对齐某个时刻时,请以小时那一项为准,或者直接用自己的起算时间做一次减法核对。

常见问题

我填的出生日期会上传吗?
不会。计算全部由本页的 JavaScript 在浏览器里完成,日期不会作为参数发给任何服务器。你可以打开开发者工具的网络面板验证:调整日期时没有任何携带该日期的请求。

宝宝的月龄能直接用它吗?
能看个大概。选中出生日后读「月」那一项就是累计月数,7 个月的宝宝会显示 7。但要注意它用的是 30.44 天的平均月长,打疫苗、发育评估这类要求按日历月核对的场景,请在日历上一个月一个月数。

填将来的日期会怎样?
不会给你一个负数年龄。页面判断到时间差为负时,直接显示「还没出生呢 🍼」,所以用来算预产期之后的天数不会得到乱码数字。

为什么天数跟我自己算的差一天?
因为起算点:日期字符串被按 UTC 零点解析,等于北京时间早上 8 点,累计天数从这一刻开始。你按当地零点起算时,两边就会在一天之内来回差 1。以小时数为准,或按自己的起算时刻重算一次即可。

闰年 2 月 29 日出生的人怎么算?
周岁按日历走,不受影响。生日倒计时在闰年指向 2 月 29 日,在平年指向 3 月 1 日,因为那是缺失日期之后最近的合法一天——这也是多数场合通行的做法。

能拿它当官方材料里的年龄依据吗?
建议只用它来核对自己的算术。不同地区、不同机构对「是否把出生当天算满一天」的规定不一样,正式文件要以签发机构认定的口径为准。