UNIX时间戳是一个长数字,是自1970-01-01 UTC以来的毫秒数。
console.log(Date.now()); //1641894862442
这是一个长的数字,也叫UNIX时间戳,如何把这个数字转换成日期和时间格式。
输入的Unix时间戳是一个长数字,例子是1641895275360 输出的日期格式是MM/DD/YYYY,时间格式是HH:MM:SS。
如何将Unix时间戳转换为日期和时间
我们有多种方法可以转换Unix时间戳。
- 使用toLocaleDateString方法,将时间戳转换为Date
首先,用Unix时间戳创建一个Date对象,然后用本地信息调用toLocaleDateString 。
timestamp=1641895275360;
var todayDate = new Date(timestamp).toLocaleDateString("en-US")
console.log(todayDate)
输出:
1/11/2022
- 使用toLocaleTimeString方法将时间戳转换为时间
toLocaleTimeString() 方法获取本地信息并转换为时间格式。
timestamp=1641895275360;
var todayTime = new Date(timestamp).toLocaleTimeString("en-US")
console.log(todayTime)
输出:
10:01:15 AM
- momentJS将当前时间戳转换为日期和时间。
momentJS是一个javascript库,提供了操作日期和时间相关数据的实用功能。
var timestamp = moment.unix(1341895271360);
console.log( timestamp.format("hh:mm:ss") );
输出:
"11:59:20"
const date = moment(1341895271360).format('L');
console.log(date); // 4/17/2020
输出:
"07/10/2012"
- 使用内置的日期函数
这是手动获取日期和时间的方法 对于检索日期对象,使用Date对象的getFullYear(),getMonth(),getDate()方法。
下面是一个例子。
function getDate(timestamp) {
var date = new Date(timestamp);
var year = date.getFullYear();
var month = ("0" + (date.getMonth() + 1)).substr(-2);
var day = ("0" + date.getDate()).substr(-2);
return year + "-" + month + "-" + day ;
}
function getTime(timestamp) {
var date = new Date(timestamp);
var hour = ("0" + date.getHours()).substr(-2);
var minutes = ("0" + date.getMinutes()).substr(-2);
var seconds = ("0" + date.getSeconds()).substr(-2);
return hour + ":" + minutes + ":" + seconds;
}
console.log( getDate(1641895271360));
console.log( getTime(1641895271360));
输出:
"2022-01-11"
"15:31:11"
结论
学习了以下多种将时间戳或纪元时间转换为日期和时间的方法
- toLocaleDateString和toLocaleTimeString
- momentJS
- 内建的日期函数