计算年龄 JavaScript
Calculate Age JavaScript
这个年龄函数是怎么计算的?
具体使用的“7656656e5”值是从哪里来的?
我要计算 1994 年 3 月 31 日出生的人的年龄
Age = function() {
var e, o;
return renderAgeLoop = function() {
setInterval(renderAge, 100)
}, renderAge = function() {
var n = 7656656e5, //Where does this value come from?
r = new Date,
t = r - n,
a = t / 315569e5;
e = $("#major"), o = $("#minor");
var i = a.toFixed(9).toString().split(".");
var d = new Date();
console.log(d.toUTCString())
e.text(i[0]), o.text(i[1])
}, {
renderAgeLoop: renderAgeLoop
}
}
这一行在这里
var n = 7656656e5
是JavaScript中的一种表示数字的方法。我相信它指的是科学记数法。
它将数字 7656656
乘以 10 ^ 5
,即 e5
。
如果你 运行 在你的控制台(Chrome 开发者工具)中,你会看到类似这样的东西
=> 765665600000
至于这个数字代表什么,我注意到你在比较那个值和 new Date()
。所以它可能代表自 1970 年 1 月 1 日以来的毫秒数。
无论如何,如果您想计算年龄,这里有一个更好的方法。
var startTime = new Date("1990").getTime()
var currentTime = new Date().getTime()
var age = currentTime - startTime/Math.floor(1000 * 60 * 60 * 24 * 365)
不过最好的解决方案是查看出色的库 MomentJS
。使用起来更容易。
Age = function() {
var e, o;
return renderAgeLoop = function() {
setInterval(renderAge, 100)
}, renderAge = function() {
var n = 762498000000, //milliseconds between Jan 01 1970 00:00:00 and Mar 31 1994 00:00:00
r = new Date,
t = r - n,
a = t / 31556900000; //milliseconds in a year
e = $("#major"), o = $("#minor");
var i = a.toFixed(9).toString().split(".");
var d = new Date();
console.log(d.toUTCString())
e.text(i[0]), o.text(i[1])
}, {
renderAgeLoop: renderAgeLoop
}
}
通过传递出生日期获取年龄的纯javascript函数:
function getAge(birthDate) {
if(Object.prototype.toString.call(birthDate) !== "[object Date]") return
return Math.floor((new Date() - birthDate)/31557600000);
}
// Example:
console.log(getAge(new Date("1993-01-22T00:00:00.000Z")))
// Output:
// 28
这个年龄函数是怎么计算的?
具体使用的“7656656e5”值是从哪里来的?
我要计算 1994 年 3 月 31 日出生的人的年龄
Age = function() {
var e, o;
return renderAgeLoop = function() {
setInterval(renderAge, 100)
}, renderAge = function() {
var n = 7656656e5, //Where does this value come from?
r = new Date,
t = r - n,
a = t / 315569e5;
e = $("#major"), o = $("#minor");
var i = a.toFixed(9).toString().split(".");
var d = new Date();
console.log(d.toUTCString())
e.text(i[0]), o.text(i[1])
}, {
renderAgeLoop: renderAgeLoop
}
}
这一行在这里
var n = 7656656e5
是JavaScript中的一种表示数字的方法。我相信它指的是科学记数法。
它将数字 7656656
乘以 10 ^ 5
,即 e5
。
如果你 运行 在你的控制台(Chrome 开发者工具)中,你会看到类似这样的东西
=> 765665600000
至于这个数字代表什么,我注意到你在比较那个值和 new Date()
。所以它可能代表自 1970 年 1 月 1 日以来的毫秒数。
无论如何,如果您想计算年龄,这里有一个更好的方法。
var startTime = new Date("1990").getTime()
var currentTime = new Date().getTime()
var age = currentTime - startTime/Math.floor(1000 * 60 * 60 * 24 * 365)
不过最好的解决方案是查看出色的库 MomentJS
。使用起来更容易。
Age = function() {
var e, o;
return renderAgeLoop = function() {
setInterval(renderAge, 100)
}, renderAge = function() {
var n = 762498000000, //milliseconds between Jan 01 1970 00:00:00 and Mar 31 1994 00:00:00
r = new Date,
t = r - n,
a = t / 31556900000; //milliseconds in a year
e = $("#major"), o = $("#minor");
var i = a.toFixed(9).toString().split(".");
var d = new Date();
console.log(d.toUTCString())
e.text(i[0]), o.text(i[1])
}, {
renderAgeLoop: renderAgeLoop
}
}
通过传递出生日期获取年龄的纯javascript函数:
function getAge(birthDate) {
if(Object.prototype.toString.call(birthDate) !== "[object Date]") return
return Math.floor((new Date() - birthDate)/31557600000);
}
// Example:
console.log(getAge(new Date("1993-01-22T00:00:00.000Z")))
// Output:
// 28