在 JavaScript 中以 YYYY

您所在的位置:网站首页 利用出生日期提取年龄 在 JavaScript 中以 YYYY

在 JavaScript 中以 YYYY

2024-06-30 07:16| 来源: 网络整理| 查看: 265

在 JavaScript 中使用原生日期方法计算年龄给定 YYYY-MM-DD 格式的出生日期 在 JavaScript 中使用 Moment.js 库以 YYYY-MM-DD 格式计算给定出生日期的年龄 使用 Vanilla 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 文件并创建一个 ,为其提供一个占位符 id,稍后将在 JavaScript 中调用 innerhtml 的函数时使用它。

Changing Date of Birth in JavaScript

然后,在 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 + 'Age in Months : ' + months + 'Age in Days : ' + days + 'Age in Hours : ' + hours + 'Age in Seconds : ' + seconds + '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 以找到一个人的年龄(以毫秒为单位)。当我们有一个人的以毫秒为单位的年龄时,我们必须实现一些基本逻辑来将其转换为年、月、日、小时、分钟和秒。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3