返回

时间戳转换进阶指南:掌握 JS 中的时间戳操作技巧

前端

在 JavaScript 的世界中,时间戳是表示时间的一种普遍方式,它以自 1970 年 1 月 1 日午夜(UTC)以来的毫秒数来衡量。理解和操作时间戳对于各种应用程序至关重要,从日期和时间的显示到数据分析和日志记录。本文将深入探讨 JavaScript 中时间戳转换的各种方法,指导你驾驭时间戳的复杂世界。

10 位与 13 位时间戳

JavaScript 中的时间戳通常以两种格式表示:

  • 10 位时间戳: 表示自纪元(1970 年 1 月 1 日午夜 UTC)以来的秒数,不包括毫秒。
  • 13 位时间戳: 表示自纪元以来以毫秒为单位的时间,提供更精确的时间测量。

10 位时间戳转换为 13 位:

const tenDigitTimestamp = 1653723020; // 10 位时间戳,单位为秒
const thirteenDigitTimestamp = tenDigitTimestamp * 1000; // 乘以 1000 转换为毫秒

13 位时间戳转换为 10 位:

const thirteenDigitTimestamp = 1653723020000; // 13 位时间戳,单位为毫秒
const tenDigitTimestamp = Math.floor(thirteenDigitTimestamp / 1000); // 除以 1000 转换为秒

获取当前时间戳

获取当前时间戳非常简单:

const currentTimestamp = Date.now(); // 返回当前时间戳,单位为毫秒

时间转时间戳

将特定时间转换为时间戳也很简单:

const date = new Date("2023-05-18T14:20:30Z"); // 创建一个 Date 对象
const timestamp = date.getTime(); // 获取时间戳,单位为毫秒

时间戳转日期

将时间戳转换为可读日期也很容易:

const timestamp = 1653723020000; // 时间戳,单位为毫秒
const date = new Date(timestamp); // 创建一个 Date 对象
const formattedDate = date.toLocaleDateString(); // 以本地格式格式化日期

获取年月日

提取时间戳中的年月日也很方便:

const timestamp = 1653723020000; // 时间戳,单位为毫秒
const date = new Date(timestamp);
const year = date.getFullYear();
const month = date.getMonth() + 1; // 月份从 0 开始,需要加 1
const day = date.getDate();

时间戳格式化

除了上述方法外,JavaScript 还提供了几个实用功能来格式化时间戳:

const timestamp = 1653723020000; // 时间戳,单位为毫秒
const formattedTimestamp = new Date(timestamp).toLocaleString(); // 以本地格式格式化时间戳

现在,你已经掌握了在 JavaScript 中转换和操作时间戳的各种技巧。无论你是在显示日期和时间,还是在进行数据分析,这些方法都能为你的应用程序提供可靠且精确的时间戳处理。