在 JavaScript 中以 YYYY-MM-DD 格式计算给定出生日期的年龄
本文将介绍如何以 YYYY-MM-DD 格式计算给定出生日期的年龄。
在 JavaScript 中使用原生日期方法计算年龄给定 YYYY-MM-DD 格式的出生日期
给定 YYYY-MM-DD 的出生日期,我们可以使用本地日期方法来计算一个人的年龄。
const calculateAge = (birthday) => {
const ageDifMs = Date.now() - new Date(birthday).getTime();
const ageDate = new Date(ageDifMs);
return Math.abs(ageDate.getUTCFullYear() - 1970);
} console.log(calculateAge('1999-11-23'))
输出:
22
单击并访问此链接以查看上述示例的工作代码。
解释:
- 首先,我们使用生日输入构建了
calculateAge
函数,该函数需要一个日期字符串进行转换并用于计算年龄。 - 我们从函数中减去
Date.now
,其中包含当前日期时间的时间戳(以毫秒为单位)。 - 我们构建了一个新的 Date 实例。然后,我们调用
getTime
来获取我们经过的生日的毫秒精度时间戳。 - 然后将结果分配给
ageDifMs.
- 然后,我们将
ageDifMs
提供给日期函数Object() {[native code]}
以接收ageDate,
,它是 1970 年 1 月 1 日午夜 UTC 形成的日期,加上由我们过去的时间。
在 JavaScript 中使用 Moment.js
库以 YYYY-MM-DD 格式计算给定出生日期的年龄
我们还可以使用 Moment.js
库来简化日期计算。
const calculateAge = (birthday) => {
const startDate = new Date();
const endDate = new Date(birthday);
return Math.abs(moment.duration(endDate - startDate).years());
} console.log(calculateAge('1999-11-23'))
输出:
22
解释:
- 我们在
calculateAge
函数中使用了生日参数,和以前一样。 - 我们没有使用本地日期方法,而是使用
moment.duration
方法确定持续时间。 - 为了获取即时持续时间对象,我们用
endDate - startDate
调用它。 - 然后,我们用年数来表示时间长度。
- 然后,我们使用
Math.abs
再次检查结果是否为阳性。 - 控制台日志应显示与以前相同的信息。
使用 Vanilla JavaScript 以 YYYY-MM-DD 格式计算给定出生日期的年龄
首先,我们获取 HTML 文件并创建一个 <div>
,为其提供一个占位符 id,稍后将在 JavaScript 中调用 innerhtml
的函数时使用它。
<div id="placeholder">
<p>Changing Date of Birth in JavaScript</p>
</div>
然后,在 JS 文档中,我们首先创建一个变量 Date_of_Birth
来存储一个人的出生日期。
var Date_of_Birth = 'November 23, 1999';
var millisecondsBetweenDOBAnd1970 = Date.parse(Date_of_Birth);
var millisecondsBetweenNowAnd1970 = Date.now();
var ageInMilliseconds =
millisecondsBetweenNowAnd1970 - millisecondsBetweenDOBAnd1970;
var milliseconds = ageInMilliseconds;
var second = 1000;
var minute = second * 60;
var hour = minute * 60;
var day = hour * 24;
var month = day * 30;
var year = day * 365;
// Age is coverted by using tag `math`
var years = Math.round(milliseconds / year);
var months = years * 12;
var days = years * 365;
var hours = Math.round(milliseconds / hour);
var seconds = Math.round(milliseconds / second);
function printResults() {
var message = 'Age in Years : ' + years + '</br>Age in Months : ' + months +
'</br>Age in Days : ' + days + '</br>Age in Hours : ' + hours +
'</br>Age in Seconds : ' + seconds +
'</br>Age in Milliseconds : ' + milliseconds;
document.getElementById('placeholder').innerHTML = message;
}
window.onload = printResults;
输出:
Age in Years : 22
Age in Months : 264
Age in Days : 8030
Age in Hours : 195551
Age in Seconds : 703983954
Age in Milliseconds : 703983954456
你可以使用此链接运行此代码。
解释:
Date.parse()
函数解析日期字符串并返回从 1970 年 1 月 1 日午夜到该日期的毫秒数。自 1970 年 1 月 1 日起,Date.now()
函数返回毫秒数。
我们以这些函数为起点。为了保持 DOB/NOW 和 1970 年 1 月 1 日之间的毫秒数,我们建立了两个新变量 millisecondsBetweenDOBAnd1970
和 millisecondsBetweenNowAnd1970
。
然后,我们从 NOW 中减去 DOB 以找到一个人的年龄(以毫秒为单位)。当我们有一个人的以毫秒为单位的年龄时,我们必须实现一些基本逻辑来将其转换为年、月、日、小时、分钟和秒。
相关文章
在 JavaScript 中为一个元素设置多个属性
发布时间:2024/03/19 浏览次数:187 分类:JavaScript
-
本教程向我们展示了如何使用 JavaScript 一次为一个元素设置多个属性。我们将使用 setAttribute() 方法将每个属性及其值添加到元素中,并使用 Object.keys() 和 forEach() 方法来获取对象键的数
HTML Script Type 属性的使用
发布时间:2024/03/19 浏览次数:74 分类:JavaScript
-
本教程展示了 HTML5、HTML 4.01、XHTML 和 VBScripts 中 HTML 脚本类型属性的使用。
在 JavaScript 中使用 Onclick 转到 URL
发布时间:2024/03/19 浏览次数:129 分类:JavaScript
-
在今天的帖子中,我们将学习 JavaScript 中的 onclick 转到 URL。
在 JavaScript 中使用 HTML Canvas 调整图像大小
发布时间:2024/03/19 浏览次数:82 分类:JavaScript
-
在今天的帖子中,我们将学习在 JavaScript 中使用 HTML 画布调整图像大小。
在 JavaScript 中生成随机颜色
发布时间:2024/03/19 浏览次数:150 分类:JavaScript
-
以 JavaScript 内置 Math 函数和 JQuery 库为 UI(用户界面)随机改变 HTML 网页 onClick 背景色为例。
使用 JavaScript 在 HTML5 Canvas 中绘制圆
发布时间:2024/03/19 浏览次数:53 分类:JavaScript
-
在今天的帖子中,我们将学习如何使用 JavaScript 在 HTML Canvas 中创建图形,特别是圆形。