1

我对 JavaScript 的Date对象及其getTime()方法感到困惑。从: 最小和最大日期

它说实际的最大值和最小值。Date自 1970 年 1 月 1 日 UTC 起,JS 对象可表示的毫秒数 (ms)为 (-/+)8.640.000.000.000.000 毫秒。

但是,8.640.000.000.000.000 需要 53 位。

另一方面,所有 JS 数字都是 64 位浮点数,只有 52 个小数位(不包括符号位)。

因此,JS 如何存储最大或最小日期值Date.getTime()的结果?Date它必须使用其中一个指数位来执行此操作,对吗?

这是否也意味着Date严格不可能将 JS(通过其毫秒数)转换为 int64(例如用于 Qt)?

4

1 回答 1

0

JavaScript 使用 IEEE-754 双精度(64 位)格式表示数字。它为您提供 53 位精度。JS 内部存储为 64 位浮点数,JavaScript 日期内部存储为自纪元以来的毫秒数。您可以使用JavaScript 的getTime()方法。我将返回 epoch value 。这个纪元值可以在 Qt 中用作纪元值或使用从这个纪元值创建日期

fromMSecsSinceEpoch(qint64 毫秒)

于 2018-08-06T07:34:54.487 回答