在javascript中把Unix时间戳转换成日期和时间的不同方法

1,073 阅读2分钟

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
  • 内建的日期函数