javascript - 在 JavaScript 中使用微秒精度的日期范围

标签 javascript floating-point

如果我将日期存储为 serial number例如,在 javascript 中,日期 "2014-01-01" 将存储为 41640., "2014-01-01 12:00:00 “ 将存储为 41640.5 等。

如果我们允许微秒精度(而不是毫秒精度,就像当前的 Javascript 日期对象那样),那么使用 javascript Number 可以存储的最大日期是多少?

最佳答案

一天有24*3600*10^6 μs,要准确存储86400000000=0x141DD76000这个值,需要37位。

尾数有52+1位。所以当天您还剩下 16 位来编码。这允许编码 ~2^16/365=179 年零 201 天。由于引用的是1900年左右,我们还必须考虑闰年:24(1900-1999)+20(2000-2079)=48个闰年。

由于引用日期恰好是 1899 年 12 月 30 日,因此在 2178 年 12 月 30 日 + (201-48) 天(相当于 2079 年 6 月 2 日)达到了编码限制。

此后,编码将继续,但精度会有所损失,并且不会精确到微秒。

关于javascript - 在 JavaScript 中使用微秒精度的日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56553152/

相关文章:

java - 为什么非strictfp模式下的转换被认为是丢失信息的转换?

javascript - react : trigger onChange if input value is changing by state?

javascript - 如何使图像具有交互性?

javascript - Angular JS 中的 Jquery 网络摄像头集成

javascript - 以 N 个间隔分割最小值和最大值范围

javascript - JavaScript 中的 self() 属性

c - C 上的 float 问题

C++,如何优化浮点算术运算?

python - 检查特定的浮点值是否在 Python/numpy 的列表/数组中

c - 在 c 中四舍五入有困难