10位时间戳、13位时间戳以及17位时间戳在JS中的格式转换

分类: 365体育娱乐手机平台 时间: 2025-07-06 21:22:57 作者: admin 阅读: 4455

目录

目录目录一、介绍1、10位时间戳2、13位时间戳3、17位时间戳二、13位时间戳的转换1、获取当前时间的13位时间戳2、转换成标准日期3、转换成格式化日期三、10位时间戳的转换1、获取当前时间的10位时间戳2、转换成标准日期3、转换成格式化日期四、17位时间戳的转换

一、介绍

1、10位时间戳

10位时间戳通常指的是Unix时间戳的一种表示形式,它表示从1970年1月1日00:00:00 UTC(协调世界时)到某个特定时间点的秒数。与常见的13位时间戳(毫秒级时间戳)不同,10位时间戳只精确到秒。

10位时间戳是一种常见的时间表示方式,因其简单、易用、兼容性好,在软件开发和网络应用中被广泛使用。

2、13位时间戳

‌13位时间戳是指自1970年1月1日00:00:00 UTC(协调世界时)以来的总毫秒数‌。这种时间戳以毫秒为单位进行表示,提供了比10位时间戳(以秒为单位)更高的时间精度,因此在需要高精度时间记录和分析的场景中尤为有用‌。13位时间戳在软件开发、网络应用、数据库记录等多个领域都有广泛应用,如记录事件发生时间、版本控制、日志记录等‌。

3、17位时间戳

17位时间戳表示的是自‌1601年1月1日00:00:00 GMT(格林威治时间)‌以来的总微秒数‌。这种时间戳提供了极高的时间精度,能够精确到微秒级别。

‌应用场景‌:尽管17位时间戳并不常见,但在某些特定领域,如Chrome、Edge、Firefox等浏览器的本地数据库文件中,有关时间的字段可能会采用这种时间戳格式来记录精确的时间信息‌。

‌ 与常见时间戳的区别‌:与10位和13位时间戳相比,17位时间戳提供了更高的时间精度。10位时间戳表示的是自1970年1月1日以来的总秒数,而13位时间戳则表示的是自同一时间点以来的总毫秒数。相比之下,17位时间戳能够更精确地反映时间的变化‌。

二、13位时间戳的转换

1、获取当前时间的13位时间戳

13位时间戳表示自1970年1月1日00:00:00的总毫秒数;

下面是在JavaScript中,获取当前时间的13位时间戳(以毫秒为单位)的方法

// 创建一个新的Date对象,表示当前时间

var now = new Date();

// 使用getTime()方法获取13位时间戳

var timestamp = now.getTime();

// 输出时间戳(返回自1970年1月1日00:00:00 UTC以来的毫秒数)

console.log(timestamp);

2、转换成标准日期

使用JavaScript中的Date对象,可以将13位的时间戳转换为标准日期;

只需在创建Date对象时传入需要转换的13位时间戳即可;

//以1733910420147时间戳为例

new Date(1733910420147)

3、转换成格式化日期

使用该方法可以将13位的时间戳转换成 yyyy-MM-dd HH:mm:ss 格式的日期字符串;

// 13位时间戳的格式化,以1733910420147为例

console.log("格式化13位时间戳1733910420147:", formatTimeStamp(1733910420147));

function formatTimeStamp(timeStamp) {

let date = new Date(timeStamp);

let year = date.getFullYear();

let month = date.getMonth() + 1;

let day = date.getDate();

let hour = date.getHours();

let minute = date.getMinutes();

let second = date.getSeconds();

month = month < 10 ? "0" + month : month;

day = day < 10 ? "0" + day : day;

hour = hour < 10 ? "0" + hour : hour;

minute = minute < 10 ? "0" + minute : minute;

second = second < 10 ? "0" + second : second;

return `${year}-${month}-${day} ${hour}:${minute}:${second}`;;

}

三、10位时间戳的转换

1、获取当前时间的10位时间戳

在JavaScript中,获取当前时间的10位时间戳(以秒为单位)需要将毫秒数转换为秒数。你可以使用Math.floor()函数来对毫秒数进行整除,从而得到秒数。以下是一个示例代码:

// 获取当前时间的毫秒数(13位时间戳)

var milliseconds = Date.now();

// 将毫秒数转换为秒数(10位时间戳)

var timestampInSeconds = Math.floor(milliseconds / 1000);

// 输出10位时间戳

console.log(timestampInSeconds);

2、转换成标准日期

10位时间戳表示自1970年1月1日00:00:00的总秒数;

只需给10位时间戳 * 1000 转成13位时间戳,其他按照13位时间戳的处理方式就可以了;

// 以 1733911274时间戳为例

new Date(1733911274* 1000);

3、转换成格式化日期

注意:这里使用的是上面13位时间戳的转换方法,只需注意传入的参数即可;

// 13位时间戳的格式化,以1733910420147为例

console.log("格式化13位时间戳1733910420147:", formatTimeStamp(1733910420147));

// 10位时间戳的格式化,以1733911274为例

console.log("格式化10位时间戳1733911274:", formatTimeStamp(1733911274* 1000));

四、17位时间戳的转换

17位的时间戳在解析上比较麻烦,JavaScript中的Date对象只能用来处理13位的时间戳,所以需要先将17位时间戳的换成13位时间戳的表示规则,再进行解析,这里不做详解

完整代码(代码来源)

// 13363929430000000 1719455830 2024年6月27日星期四上午10点37分 GMT+08:00

// 格式化17位时间戳13363929430000000: 2024-06-27 10:31:27

console.log("格式化17位时间戳13363929430000000:", format17TimeStamp(13363929430000000));

function format17TimeStamp(timeStamp){

let epoch_start = new Date("1601-1-1 00:00:00:000");

console.log(epoch_start.getTime()); // "1601-1-1 00:00:00"的毫秒数:-11644502743000

let epoch_end = new Date("1970-1-1 00:00:00:000");

console.log(epoch_end.getTime()); // "1970-1-1 00:00:00"的毫秒数:-28800000

let epoch = (epoch_end.getTime() - epoch_start.getTime());

console.log(epoch); // 相差epoch: 11644473943000 毫秒

let timeStamp14 = Math.floor(timeStamp / 1000); // timeStamp14: 13363929430000

console.log("timeStamp14:", timeStamp14);

let ms = timeStamp14 - epoch; // ms: 1719455487000

console.log("ms:", ms);

let date = new Date(ms); // date: Thu Jun 27 2024 10:31:27 GMT+0800 (中国标准时间)

console.log("date:", date);

return formatTimeStamp(date); // 2024-06-27 10:31:27

}

相关文章

IE浏览器升级,电脑升级IE浏览器的两种方法

365体育娱乐手机平台 · 07-05 阅读 6834

一部手机里有多少金属?为此我拆了一部手机

365bet有手机app吗 · 07-02 阅读 2151

苹果手机怎么充游戏

28365365tw总部 · 07-03 阅读 5708