带有神秘附加字符的 Javascript Date getTime() 代码片段

Posted

技术标签:

【中文标题】带有神秘附加字符的 Javascript Date getTime() 代码片段【英文标题】:Javascript Date getTime() code snippet with mysterious additional characters 【发布时间】:2013-08-23 22:35:53 【问题描述】:
<script language="javascript">
var t = new Date();
t.getTime() + -864e5;
</script>

第二行末尾的“+”之后的那个时髦的代码是做什么的?

这可能很难理解,因为我怀疑这是他们试图保护自己免受刮擦的一种方式。

【问题讨论】:

这是一个数字字面量:developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/…. 这是科学记数法。 What number does 8e3 evaluate to?的可能重复 &lt;script language="JavaScript"&gt; - 1999 年的派对! 【参考方案1】:

这是一个有效的 JavaScript 数字,表示一天 24 小时中的毫秒数。

1000*60*60*24 or 86400000 or 864e5

【讨论】:

不知道为什么有人会想要使用这种方法——它确实让代码更难阅读......甚至你可能需要在Stack Overflow 上发布问题才能理解它: P @Mattis:它否定了这个数字。喜欢5-5。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 。当然,写a - b 而不是a + (-b) 会更容易,但是好吧...... @Mattis:不,只是为了让脚本更短。抓取并不复杂,每个浮点数解析器都支持这种格式。【参考方案2】:

-864e5 表示“减去 1 天”。所以 JavaScript 真的得到了 24 小时前的日期/时间。

【讨论】:

【参考方案3】:

864e5 是一个有效的 JavaScript 数字,表示一天 24 小时内的 毫秒(毫秒是 1/1000' 秒)的数量。

1000*60*60*24 = 86400000 或使用指数表示法 864e5

【讨论】:

【参考方案4】:

看起来 + -864e5 将时间偏移到过去 1 天。

它确实不是很可读,或者对于第一次看它的人来说很有意义,但在裸 js 中真的没有任何其他方式(在这一点上)。

【讨论】:

getTime() 返回毫秒数。 无赖。我希望 cocco 的 anwser 中的上述数学运算能在几天内产生。帖子已编辑。 当然还有其他方法。如果你担心人们不理解你是否使用科学,你可以用常规符号写出这个数字。或者,如果您担心人们不知道 86400000 的重要性,您可以发表评论来解释这一点。为什么要使用+ -864e5 而不仅仅是- 864e5

以上是关于带有神秘附加字符的 Javascript Date getTime() 代码片段的主要内容,如果未能解决你的问题,请参考以下文章

带有完整查询字符串的 Javascript document.referrer

datetime 将 GMT 附加到字符串的末尾?

用 rbind 附加数据帧的神秘问题

更好的是,通过 DOM 函数附加新元素,或附加带有 HTML 标签的字符串?

由c ++ ofstream打印到文件的神秘十六进制字符

在您键入时附加带有转换字符的输入字段,JQUERY