如何在 JavaScript 中獲取自紀元以來的天數?


在本教程中,我們將學習如何使用 JavaScript 計算自紀元以來的天數。我們將使用 `Math.abs()` 和 `Math.floor()` 方法來計算天數。首先,我們將學習什麼是紀元。

什麼是紀元?

它也稱為紀元時間、Unix 時間或 Posix 時間。在確定性上下文中,紀元是計算機時鐘和時間戳相對於其確定的資料和時間。

紀元時間是從 1970 年 1 月 1 日午夜 UTC 時間起經過的秒數,減去閏秒。實際上,紀元是自計算機開始計數以來經過的秒數。這個紀元傳統上對應於特定日期的協調世界時 (UTC) 0 時 0 分 0 秒 (00:00:00),不同系統之間有所不同。

即使我們有日期,為什麼還需要紀元?

將日期和時間轉換為紀元值可以更容易地查詢差異,並從時間值中新增和減去。紀元在計算機程式設計中很有用,因為我們可以用它來數學地比較日期,這有助於我們透過將人類可讀的日期格式轉換為其等效的紀元值來編寫程式設計邏輯。

下表用於確定紀元秒等效的時間段。

時間 紀元秒等效值
1 分鐘 60
30 分鐘 1800
1 小時 3600
1 天 86,400
1 周 604,800
2 周 12,09,600
3 周 18,14,400
1 個月 24,19,200
6 個月 14,515,200
1 年 29,030,400
1 個十年 290,304,000

例如,您可以將時間轉換為紀元,並將其從另一個紀元值中減去以快速確定差異。如果差異為 95,400,並且您使用上表或數學公式發現差異為 1 天 2 小時半 (86400 + 3600 + 3600 + 1800 = 95,400)。

獲取自紀元以來的天數的步驟

步驟 1 - 定義當前日期。

步驟 2 - 定義紀元日期。

步驟 3 - 找到當前日期和紀元日期之間的絕對差值,除以 1000。

步驟 4 - 找到兩個日期之間的總天數。為此,我們將步驟 3 中的結果除以 86400。

步驟 5 - 顯示自紀元以來的天數。

示例

在下面的示例中,我們獲取了 JavaScript 中自紀元以來的天數。

<!DOCTYPE html>
<html>
<body>
   <h1>Calculating days since epoch</h1>
   <p>Current time is -
      <span id="currentDate"></span>
   </p>
   <p>Epoch time is -
      <span id="epochDate"></span>
   </p>
   <p>Number days -
      <span id="difference"></span>
   </p>
   <script>
      var currentDate, epochDate;
      currentDate = new Date();
      document.getElementById('currentDate').innerHTML=currentDate;
      var epochDate = new Date(new Date().getTime() / 1000);
      document.getElementById('epochDate').innerHTML=epochDate;
      var res = Math.abs(currentDate - epochDate) / 1000;
      
      // get total days between two dates
      var difference = Math.floor(res / 86400);
      document.getElementById('difference').innerHTML=difference;
   </script>
</body>
</html>

這裡,`getTime()` 方法返回毫秒數。如果我們除以 1000,則它返回自紀元以來的秒數。在這裡,我們將差值除以 86400,因為我們想以天數的形式計算它。

`Math.abs()` 方法返回數字的絕對值。也就是說,如果值為正數或零,則返回該值;如果值為負數,則返回該值的負值;如果值不是數字,則返回 NaN。希望本教程能讓我們瞭解紀元和計算自紀元以來的天數。

更新於:2022-12-08

3K+ 次瀏覽

啟動您的 職業生涯

完成課程後獲得認證

開始學習
廣告
© . All rights reserved.