使用 JavaScript 将 Unix 时间戳转换为时间
Convert a Unix timestamp to Time using JavaScript
将 Unix 时间戳转换为时间:
Date
从 Unix 时间戳创建一个对象。- 使用
getHours()
,getMinutes()
和getSeconds()
方法获取时间组件。 - (可选)将时间格式化为
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
:
- Date.getHours – 返回指定日期的小时数。
- Date.getMinutes – 返回日期的分钟数。
- Date.getSeconds – 返回特定日期的秒数。
最后一步是将时间格式化为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.getMonth
0
– 返回一个介于(January) 和(December)之间的整数11
,代表给定日期的月份。是的,不幸的是该getMonth
方法已关闭1
。 -
Date.getDate
1
– 返回一个介于和之间的整数,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'); }
您可以重新排序值、更改分隔符或进行适合您的用例的任何其他更改。
请注意,我们必须添加1
该getMonth
方法返回的值,因为它返回一个从零开始的月份(一月 = 0,二月 = 1,等等)。
我们填充了月份和日期的值,因为它们可能小于,并且我们希望输出一致的结果。
10