【发布时间】:2018-09-21 13:08:18
【问题描述】:
我的应用程序中的每个用户都有一个出生日期。例如。格式为29/01/2015
我目前的代码从今天的日期和提供的出生日期计算年份:
((new Date((new Date().getTime() - new Date(user.dob).getTime())).getFullYear()) - 1970)
对于上面的示例,这将检索号码 3,因为距离 29/01/2015 已经三年了。
如果年份低于1,获取月份的最佳优化是什么?
例如对于这个日期:21/03/2018,我的代码将返回 0,因为一整年还没有过去。如何优化我的逻辑来检索6 months,即今天(21/09/2018)和21/03/2018之间的时间?
P.S.我想避免使用任何库。
【问题讨论】:
-
没有真正的理由不使用像 momentjs 这样的库。事实上,我什至认为最好使用一个。它已经过试验和测试,它绝对有效。很可能您将添加更多的日期操作和格式设置,这意味着如果您使用 vanilla js,您将添加越来越多的已经被弄清楚和处理的功能。而且以后很难替换。
-
您没有正确解析日期,并且使用 Date 构造函数来计算年差是一个很差的近似值。有很多关于如何做到这两点的现有答案。
标签: javascript angular typescript date