Como converter data em timestamp no Javascript


Olá pessoal! O timestamp ou tempo de carimbo ou ainda marca temporal é uma cadeia de caracteres que denota a hora ou data que certo evento ocorreu. No Javascript o timestamp informa o número de milisegundos decorridos desde 1 de janeiro de 1970 através dos métodos getTime() ou Date.now(). Ou seja, ao invocarmos esses métodos, teremos o resultado em milissegundos entre a data em que a função foi invocada e a data de referência (1 de Janeiro de 1970), permitindo assim estabelecer um formato consistente e de fácil comparação entre duas marcas temporais distintas. Ele pode ser muito útil por exemplo quando desejamos exibir há quantos dias um determinado evento está em execução desde o seu início. 

Nesse post eu gostaria de mostrar como é possível converter uma data qualquer em timestamp para convertermos o resultado em em dias, meses ou anos utilizando o Javascript para utilizar em nossos projetos. É bem simples e eu vou mostrar a vocês.


Primeiro passo

Tudo que precisamos é de uma data a qual desejamos saber o seu valor em timestamp. Então vamos declarar a data a seguir como exemplo:

var data = "26-10-2021";


Segundo passo

Agora vamos dividir a data em três porções utilizando o método split():

var data2 = data.split("-");

Ele retornará um novo array com o dia, mês e ano ocupando uma posição dessa forma:

data2 = ["26", "10", "2021"]


Terceiro passo

Em seguida, vamos criar uma terceira variável que vai receber um novo objeto do tipo Date() com a data escolhida e vamos trocar a ordem dos elementos para ano, mês e dia, a mesma ordem compreendida pelos bancos de dados:

var novaData = new Date(data2[2], data2[1] - 1, data2[0]);

A partir desse momento já podemos exibir o valor da data escolhida em timestamp com a função getTime():

console.log(novaData.getTime());

Com este comando podemos ver no console a data escolhida ("26-10-2021") em timestamp.


Como converter timestamp em data

E se precisarmos fazer o contrário, isto é, se tivermos um valor em timestamp e precisamos converter em um formato de data padrão? É muito simples e vou mostrar!

Suponhamos que temos o seguinte valor em timestamp: 1642123149. Para convertê-lo em data e hora, basta instanciarmos um objeto do tipo Date com este valor:

var data = new Date(1642123149);

Ao executarmos este código em um terminal, teremos a saída a seguir:

Mon Jan 19 1970 21:08:43 GMT-0300 (Horário Padrão de Brasília)


Bônus: como exibir a diferença em dias entre duas datas diferentes

Uma aplicação bastante comum que pode beneficiar do uso do timestamp é saber qual é a diferença de dias entre duas datas distintas. Para isso vamos considerar as datas a seguir:

var data1 = "02-01-2010";

var data2 = "15-11-2015";

Primeiro passo: vamos converter as duas datas em timestamp da seguinte forma:

var dataSplit1 = data1.split("-");

var dataSplit2 = data2.split("-");

Segundo passo: criamos uma terceira variável que vai converter as duas variáveis em timestamp e em seguida subtrair o resultado de dataSplit2 com dataSplit1:

var periodo = ((new Date(dataSplit2[2], dataSplit2[1] - 1, dataSplit2[0])) - (new Date(dataSplit1[2], dataSplit1[1] - 1, dataSplit1[0])));

IMPORTANTE: nesse caso SEMPRE devemos subtrair a data mais recente pela menos recente, nunca o contrário.

Ao executarmos o console, teremos o seguinte resultado: 

185155200000

Terceiro passo: agora vamos converter o resultado em dias. Para isso, basta dividirmos o timestamp por mil, em seguida dividimos por 3600 e por fim dividimos por 24:

console.log(((periodo / 1000) / 3600) / 24);

E assim teremos a diferença em dias entre a data1 e a data2:

2143

Ou seja, passaram 2143 dias entre 02 de Janeiro de 2010 e 15 de Novembro de 2015. 


Espero que tenha ajudado.

Até a próxima!

Comentários

Postagens mais visitadas deste blog

Como corrigir o problema da biometria no Samsung Galaxy A30 e derivados

iPhone 6S em 2021: ainda vale a pena?

Como instalar aplicativos incompatíveis no iPhone 4, 5, iPad 3 e similares

Como obter as imagens em destaque da tela de bloqueio do Windows 10

Como transformar o cartão SD em memória interna

Como recolocar uma película de Smartphone/Tablet sem deixar resíduos

Como obter o Packet Tracer gratuitamente

Melhores Apps para Escrita

Como instalar o Chrome OS Flex no PC

Como fazer dual boot com o Zorin OS 16