如何在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
10年 290,304,000

例如,您可以將時間轉換為紀元,並將其從另一個紀元值中減去,以快速確定差值。如果差值為95,400,並且您使用上表或數學公式來查詢差值是1天2.5小時 (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月8日

3K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.