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.
Math.floor(Date.now() / 1000)Date.now()new Date().getTime()
// or
+new Date()new Date(1700000000 * 1000)new Date(1700000000 * 1000).toISOString()
// → "2023-11-15T06:13:20.000Z"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.