2014-02-16 77 views
0

這個腳本產生自午夜起的毫秒數量巨大,1月1日,1970年(如1392552803373):減少午夜以來的毫秒數,1970年1月1日

<html> 
<body> 

    <p id="demo"> the number of milliseconds since midnight, January 1, 1970.</p> 
    <button onclick="myFunction()">Try it</button> 

    <script> 
    function myFunction() 
    { 
    var x = document.getElementById("demo"); 
    x.innerHTML=new Date().getTime(); 
    } 
    </script> 

    </body> 
</html> 

是否有降低的方式這個數字通過設定新的基準時間到2014年1月1日?或者另一種方式?我的目標是在腳本的不同部分使用new Date().getTime(),並基於穩定的時間戳獲得較少的毫秒數。

+3

設置新基線的優點是什麼? – home

+0

你已經解釋了你想要的解決方案,但不是問題所在。 Unix時間會造成什麼問題,使得你想從根本上改變它的工作方式? –

+3

只需在2014年和1970年之間減去毫秒數,但似乎毫無意義,很容易導致錯誤。 –

回答

2

你可以用你自己的包裝Date API。

Date對象可以接收任何格式化的日期。用它來計算現在的差異。

創建一個返回相關時間的函數(或對象)。

function myGetTime() { 
    return new Date() - new Date('January 1, 2014'); 
} 
+1

使用'1388534400000'並避免時區問題可能更明智。 –

+0

這兩個日期都是在同一個時區計算的,這不應該是一個問題,因爲它是一個相對時間範圍 – Rodik

+0

** unix時代**在任何時區都是一樣的,而且我們正在討論自_unix epoch_ –

1

我想你需要創建自己的功能。只需減少功能中的ms並返回解決方案。

1
  1. 寫你自己的函數,返回你想要的。例如。你可以使用01.01.2014作爲基礎,或者你可以在幾秒鐘內返回時間而不是millis等。爲什麼你不這樣做?有什麼問題?

  2. 您可以通過更改原型來將getTime()替換爲您自己的實現。但是,這會影響您可能在頁面中使用的所有其他腳本。這可能會導致更多新問題解決。

+0

「你爲什麼不這樣做?有什麼問題?」問題是我仍然是初學者在JavaScript :) – maciekm

相關問題