2015-12-15 246 views
2

这个年龄函数是如何计算的?计算年龄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 
    } 
    } 
+0

什么8066656e5值你在说什么? – thanksd

+0

@thanksd对不起!想说“7656656e5” –

+0

你从哪里得到了这个脚本 –

回答

5

在这里,这

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。一起工作要容易得多。

http://momentjs.com/

+0

那么“765665600000”的值=自01/01/1970以来的毫秒数? –

+0

您正在比较一个日期。这将是我最好的猜测。 –

+0

刚刚测试出来,是正确的! –

0
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 
    } 
    }