知方号

知方号

根据出生日期计算年龄,格式为YYYYMMDD<日期格式为yyyymmdd怎么算年龄>

根据出生日期计算年龄,格式为YYYYMMDD

重要提示:此答案不能提供100%准确的答案,根据日期的不同,可能会有大约10-20个小时的偏差。

没有更好的解决方案(至少在这些答案中没有)。--纳维恩

当然,我忍不住要接受挑战,制作一个比目前公认的解决方案更快、更短的生日计算器。我的解决方案的要点是,数学运算速度很快,所以我们不使用分支和日期模型javascript来计算解决方案,而是使用奇妙的数学运算。

答案看起来像这样,运行速度比纳维恩快65%,而且更短:

代码语言:javascript复制function calcAge(dateString) { var birthday = +new Date(dateString); return ~~((Date.now() - birthday) / (31557600000));}

神奇的数字: 31557600000是24 * 3600 * 365.25 * 1000,这是一年的长度,一年的长度是365天6小时,也就是0.25天。最后我给出了最终年龄的结果。

以下是基准测试:http://jsperf.com/birthday-calculation

要支持OP的数据格式,您可以替换+new Date(dateString);

使用+new Date(d.substr(0, 4), d.substr(4, 2)-1, d.substr(6, 2));

如果你能想出更好的解决方案,请分享!:-)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。