Como trabalhar com Timestamp e fuso horário no Javascript, e tratar o problema de datas que são geradas ou exibidas sem o correto fuso horário.
Gerando Timestamp
Para gerar o Timestamp utilizando Javascript é muito simples, segue o exemplo:
var d = new Date(); var n = d.getTime();
Já para gerar o Timestamp de uma determinada data podemos utilizar:
var data = "15/08/1990"; data =myDate.split("/"); var nova_data = data[1]+"/"+data[0]+"/"+data[2]; console.log(new Date(nova_data ).getTime());
Agora para pegar apenas o horário já incluindo o fuso horário utilize:
var d = new Date(); var n = d.toLocaleTimeString();
new Date() sem o fuso horário
Para gerar os timestamp estamos utilizando o objeto Date.
Em algumas situações você terá o problema com o fuso horário, o qual não é tratado explicitamente no objeto que estamos utilizando.
Para isso utilize:
var d = new Date('10/08/2015 00:00:00'); d.toLocaleString() // 08/10/2015 00:00:00 d.toString(); //Thu Oct 08 2015 00:00:00 GMT-0300 (Hora oficial do Brasil)
Usando toLocaleString() ou toString() o fuso horário será considerado na geração da data.
Porém se você utilizar as funções toGMTString() ou toUTCString(), você terá problemas com a falta do fuso, análise o resultado abaixo:
d.toGMTString(); //Thu, 08 Oct 2015 03:00:00 GMT d.toUTCString(); //Thu, 08 Oct 2015 03:00:00 GMT
Mais exemplos de Timestamp e fuso horário
Para calcularmos a quantidade de anos desde 01/01/1970, utilizados.
var minutos = 1000 * 60; var horas = minutos * 60; var dias = horas * 24; var anos = dias * 365; var d = new Date(); var t = d.getTime();
Resultado
var y = Math.round(t / years); console.log(y);
Segundo exemplo para converter Data p/ Timestamp:
var dtstr = "26/02/2012"; new Date(dtstr.split("-").reverse().join("-")).getTime();