如何在JavaScript中获取时间戳:5种简单方法

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

如何在JavaScript中获取时间戳:5种方法及示例

\n\n

每位开发者都曾遇到过这样的任务:需要保存一个时间点、比较日期或将数据发送到服务器。这时,JavaScript中的时间戳就派上了用场——它是一个所有系统都能理解的通用时间标记。在本指南中,我将展示5种经过验证的获取时间戳的方法,分析它们的优缺点,并回答来自Stack Overflow的热门问题。

\n\n

如果你曾经搜索过"how do I get a timestamp in JavaScript"——你并不孤单。每天都有成千上万的开发者在寻找这个答案。让我们一劳永逸地搞清楚这个话题。

\n\n

什么是时间戳,为什么需要它?

\n\n

时间戳(Timestamp)是指自1970年1月1日00:00:00 UTC以来经过的毫秒数。这个日期被称为Unix纪元。为什么需要它?

\n\n
    \n
  • 通用性:时间戳不依赖于时区——它是纯粹的UTC时间。
  • \n
  • 存储方便:一个数字代替了日期字符串。
  • \n
  • 易于比较:可以轻松计算两个时间点之间的差值。
  • \n
  • 兼容性:所有编程语言和数据库都能理解时间戳。
  • \n
\n\n

现在进入最有趣的部分——如何在JavaScript中获取它。

\n\n

方法1:Date.now() —— 最快且最简洁

\n\n

这是我最喜欢的方法。Date.now() 返回当前时间的毫秒时间戳。没有多余的对象,没有构造函数——只是一个数字。

\n\n
// 获取当前时间戳\nconst currentTimestamp = Date.now();\nconsole.log(currentTimestamp); // 1712345678901\n\n// 可以直接用于测量\nconst start = Date.now();\n// ... 一些代码 ...\nconst end = Date.now();\nconsole.log(`执行耗时 ${end - start} 毫秒`);\n
\n\n

优点:

\n
    \n
  • 最高性能(不创建对象)
  • \n
  • 代码可读性强且简短
  • \n
  • 所有现代浏览器和Node.js都支持
  • \n
\n\n

缺点:

\n
    \n
  • 只返回当前时刻(无法设置日期)
  • \n
\n\n

当你需要JavaScript中的当前时间戳且不想多费周折时,请使用Date.now()。

\n\n

方法2:new Date().getTime() —— 经典方法

\n\n

每个使用JavaScript超过一年的人都熟悉这个方法。创建一个Date对象并调用getTime()。

\n\n
// 通过Date对象获取时间戳\nconst timestamp = new Date().getTime();\nconsole.log(timestamp); // 1712345678901\n\n// 可以获取特定日期的时间戳\nconst specificDate = new Date('2024-12-31T23:59:59');\nconst specificTimestamp = specificDate.getTime();\nconsole.log(specificTimestamp); // 1735689599000\n
\n\n

优点:

\n
    \n
  • 可以获取任意日期的时间戳
  • \n
  • 向后兼容(在旧浏览器中也能工作)
  • \n
  • 语法直观易懂
  • \n
\n\n

缺点:

\n
    \n
  • 创建了多余的对象(比Date.now()稍慢)
  • \n
\n\n

当你需要获取特定日期的JavaScript时间戳或处理不同时间点时,选择new Date().getTime()。

\n\n

方法3:+new Date() —— 一元加号技巧

\n\n

很少有人知道,一元加号可以将Date对象转换为数字——即它的时间戳。这是通过强制类型转换实现的。

\n\n
// 简短但不直观的方法\nconst timestamp = +new Date();\nconsole.log(timestamp); // 1712345678901\n\n// 甚至可以省略括号\nconst timestamp2 = +new Date;\nconsole.log(timestamp2); // 1712345678902\n
\n\n

优点:

\n
    \n
  • 非常简短的写法

博客

书籍推荐