JavaScript Snippets

Trechos de timestamp Unix em JavaScript

Exemplos de JavaScript para obter o timestamp atual, converter segundos ou milissegundos Unix em objetos Date e formatar a saída com as APIs integradas do navegador.

Current Unix timestamp (seconds)
Math.floor(Date.now() / 1000)
Current Unix timestamp (milliseconds)
Date.now()
Timestamp from a Date object
new Date().getTime()
// or
+new Date()
Date object from Unix timestamp (seconds)
new Date(1700000000 * 1000)
ISO 8601 string from timestamp
new Date(1700000000 * 1000).toISOString()
// → "2023-11-15T06:13:20.000Z"
Formatted local string
new Date(1700000000 * 1000).toLocaleString()
new Date(1700000000 * 1000).toLocaleString("en-US", { timeZone: "America/New_York" })

Noções básicas de marcas de tempo em JavaScript

O JavaScript Date armazena o tempo como milissegundos desde a época Unix. Use Date.now() quando precisar de milissegundos e Math.floor(Date.now() / 1000) quando uma API esperar segundos Unix.

Conversões comuns em JavaScript

Ao converter uma marca de tempo Unix em segundos para um Date, multiplique por 1000 antes de chamar new Date(). Use toISOString() para saída UTC, toUTCString() para saída no estilo HTTP e Intl.DateTimeFormat quando precisar de um fuso específico.

Notas de produção para JavaScript

Os bugs de marcas de tempo em JavaScript geralmente vêm de misturar os milissegundos de Date com os segundos da API. Mantenha os objetos Date na borda da UI e passe pelas APIs apenas números simples ou strings ISO depois que a unidade estiver explícita. Ao exibir a hora local, use Intl.DateTimeFormat com um fuso nomeado para que o resultado seja reproduzível entre navegadores e servidores.

  • Use Date.now() quando precisar de milissegundos epoch para temporizadores, eventos de analytics ou armazenamento do navegador
  • Use Math.floor(Date.now() / 1000) quando um endpoint de backend esperar segundos Unix
  • Use new Date(seconds * 1000) quando uma API enviar segundos
  • Use toISOString() para strings UTC que possam ir e voltar via JSON

Referências relacionadas de JavaScript

FAQ

Date.now() retorna segundos Unix?
Não. Date.now() retorna milissegundos. Divida por 1000 e arredonde para baixo quando uma API, banco de dados ou ferramenta de linha de comando espera segundos Unix.
Devo armazenar objetos Date em JSON?
Não. Converta o valor primeiro para um número ou uma string ISO 8601. JSON não tem um tipo Date nativo, então valores explícitos são mais fáceis de depurar e comparar.