Converter o Timestamp para Data em JavaScript

Este tutorial irá explicar como podemos converter o carimbo da hora Unix para data em JavaScript. Unix timestamp é o tempo decorrido desde o 1, Jan 1970 00:00:00 UTC, representado em segundos.

O objecto JavaScript Date contém a representação do tempo decorrido desde 1 de Janeiro de 1970 00:00:00 UTC, representado em milissegundos.

Converter o Unix Timestamp em Date em JavaScript

Quando criamos um novo objecto da classe Date() utilizando new Date(), ele devolve o tempo em milissegundos quando é criado. Se precisarmos de obter um objecto da classe Date num ponto específico de tempo, podemos passar o carimbo da hora da época ao construtor dessa classe.

var timestamp = 1607110465663
var date = new Date(timestamp);
console.log(date.getTime())
console.log(date)

Resultado:

1607110465663
2020-12-04T19:34:25.663Z

A classe Date fornece muitos métodos para representar a Date no formato preferido, como por exemplo:

  1. getDate() retorna o dia do mês civil de 1 a 31 naquele momento.
  2. getMonth() retorna o número do mês 0 a 11 naquele momento.
  3. getFullYear() retorna o ano no formato de 4 dígitos.
  4. getHours() retorna a hora exata no formato 24 horas para aquela hora.
  5. getMinutes() retorna os minutos exatos de 0 a 59 naquele momento.
  6. getSeconds() retorna os segundos exatos de 0 a 59 naquele momento.
var timestamp = 1607110465663
var date = new Date(timestamp);

console.log("Date: "+date.getDate()+
          "/"+(date.getMonth()+1)+
          "/"+date.getFullYear()+
          " "+date.getHours()+
          ":"+date.getMinutes()+
          ":"+date.getSeconds());

Resultado:

Date: 4/12/2020 19:34:25

Uma vez que o JavaScript Date timestamp está na unidade de milissegundo enquanto o timestamp Unix está na unidade de segundo, podemos multiplicar 1000 para converter o timestamp Unix para timestamp JavaScript. Se o carimbo de tempo Unix for 1607110465, então o carimbo de tempo JavaScript é 1607110465000.

O exemplo seguinte demonstra como podemos converter o carimbo da hora Unix para JavaScript Date timestamp.

var unixTimestamp = 62678980
var date = new Date(unixTimestamp*1000);
console.log("Unix Timestamp:",unixTimestamp)
console.log("Date Timestamp:",date.getTime())
console.log(date)
console.log("Date: "+date.getDate()+
          "/"+(date.getMonth()+1)+
          "/"+date.getFullYear()+
          " "+date.getHours()+
          ":"+date.getMinutes()+
          ":"+date.getSeconds());

Resultado:

Unix Timestamp: 62678980
Date Timestamp: 62678980000
Mon Dec 27 1971 12:49:40 GMT+0200 (Eastern European Standard Time)
Date: 27/12/1971 12:49:40

Artigo relacionado - JavaScript Date

  • Como comparar duas datas em JavaScript