使用 JavaScript 将 Unix 时间戳转换为时间

使用 JavaScript 将 Unix 时间戳转换为时间

Convert a Unix timestamp to Time using JavaScript

将 Unix 时间戳转换为时间:

  1. Date从 Unix 时间戳创建一个对象。
  2. 使用getHours(),getMinutes()getSeconds()方法获取时间组件。
  3. (可选)将时间格式化为hh:mm:ss.
索引.js
const unixTimestamp = 1664000732; const date = new Date(unixTimestamp * 1000); const hours = date.getHours(); const minutes = date.getMinutes(); const seconds = date.getSeconds(); // 👇️ Format as hh:mm:ss const time = `${padTo2Digits(hours)}:${padTo2Digits(minutes)}:${padTo2Digits( seconds, )}`; console.log(time); // 👉️ 09:25:32 function padTo2Digits(num) { return num.toString().padStart(2, '0'); }

我们使用
Date()Date构造函数从 Unix 时间戳
创建对象。

构造函数采用以毫秒为单位的Date()时间戳,因此我们必须将 Unix 时间戳乘以1000.

我们使用以下3与时间相关的方法来获取hours,minutes
seconds

最后一步是将时间格式化为hh:mm:ss.

小时、分钟或秒可以包含单个数字(如果它们的值小于10)或2数字。

为了使输出始终显示2每个值的数字,如果它们的任何值小于 ,我们必须添加一个前导零 10

padTo2Digits如果传入值的长度小于 ,则该函数仅添加前导零2

索引.js
function padTo2Digits(num) { return num.toString().padStart(2, '0'); } console.log(padTo2Digits(5)); // 👉️ '05' console.log(padTo2Digits(7)); // 👉️ '07' console.log(padTo2Digits(10)); // 👉️ '10'

在小时、分钟或秒已经有2数字的情况下,我们将值保持原样。

如果您需要渲染任何与日期相关的数据,例如年、月或月中的某天,您可以使用以下 3 种方法:

  • Date.getFullYear
    方法 – 返回代表与日期对应的年份的四位数字。

  • Date.getMonth0 – 返回一个介于(January) 和(December)之间的整数11,代表给定日期的月份。是的,不幸的是该getMonth方法已关闭1

  • Date.getDate1 – 返回一个介于和之间的整数,31表示特定日期的月中日期。

getMonth方法返回从 0 到 11 的从零开始的月份索引,表示一月是0,十二月是11

这是一个将 Unix 时间戳转换为日期时间字符串的完整示例,格式为YYYY-MM-DD hh:mm:ss.

索引.js
const unixTimestamp = 1664000732; const date = new Date(unixTimestamp * 1000); const hours = date.getHours(); const minutes = date.getMinutes(); const seconds = date.getSeconds(); // 👇️ Format as hh:mm:ss const time = `${padTo2Digits(hours)}:${padTo2Digits(minutes)}:${padTo2Digits( seconds, )}`; const year = date.getFullYear(); const month = padTo2Digits(date.getMonth() + 1); const day = padTo2Digits(date.getDate()); const dateTime = `${year}-${month}-${day} ${time}`; console.log(dateTime); // 👉️ 2022-09-24 09:25:32 function padTo2Digits(num) { return num.toString().padStart(2, '0'); }

您可以重新排序值、更改分隔符或进行适合您的用例的任何其他更改。

请注意,我们必须添加1getMonth方法返回的值,因为它返回一个从零开始的月份(一月 = 0,二月 = 1,等等)。

我们填充了月份和日期的值,因为它们可能小于,并且我们希望输出一致的结果。 10