Como obter o carimbo de data e hora correto do Unix a partir de qualquer data em JavaScript

Uma solução genérica para obter o carimbo de data / hora Unix de qualquer Dateobjeto JavaScript .

// Copy & Paste this
Date.prototype.getUnixTime = function() { return this.getTime()/1000|0 };
if(!Date.now) Date.now = function() { return new Date(); }
Date.time = function() { return Date.now().getUnixTime(); }

// Get the current time as Unix time
var currentUnixTime = Date.time();
currentUnixTime
= Date.now().getUnixTime(); // same as above

// Parse a date and get it as Unix time
var parsedUnixTime = new Date('Mon, 25 Dec 1995 13:30:00 GMT').getUnixTime();
// parsedUnixTime==819898200

Motivação

O tempo Unix (também conhecido como tempo de época) é amplamente usado no tipo Unix e em muitos outros sistemas operacionais e formatos de arquivo. Infelizmente, há uma pequena discrepância entre a time()chamada de estilo C e o JavaScript Date.getTime():

Um carimbo de data / hora Unix é definido como o número de segundos decorridos desde 00:00:00 Coordinated Universal Time (UTC), quinta-feira, 1 de janeiro de 1970.

JavaScript retorna o valor numérico da data especificada como o número de milissegundos desde 1º de janeiro de 1970, 00:00:00 UTC (negativo para horários anteriores).Date.getTime()

Solução

Copie e cole o seguinte código no início do seu JavaScript:

Date.prototype.getUnixTime = function() { return this.getTime()/1000|0 };
if(!Date.now) Date.now = function() { return new Date(); }
Date.time = function() { return Date.now().getUnixTime(); }

*** Feito! ***

Uso

As três linhas acima adicionam:

  • Date.getUnixTime() retorna o tempo de época do Unix.
  • Date.now() polyfill para navegadores mais antigos.
  • Date.time() é uma função auxiliar de estilo C que retorna a hora Unix atual.

Obtenha a hora atual como um carimbo de data / hora Unix

var currentUnixTime = Date.time();

que é curto para

var currentUnixTime = Date.now().getUnixTime();

Obtenha a hora atual como objeto JavaScript Date

var currentTime = Date.now();

Obtenha a hora Unix de qualquer objeto JavaSript Date

var someDate = new Date('Mon, 25 Dec 1995 13:30:00 GMT');
var theUnixTime = someDate.getUnixTime();

Trabalho relatado


Por favor, vote positivamente.