如何在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+ 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告