Destaques
Como converter data em timestamp no Javascript
- Gerar link
- Outros aplicativos
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!
- Gerar link
- Outros aplicativos
Comentários
Postar um comentário