2015-12-15 293 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 
    } 
    }