Como você obtém um registro de data e hora em JavaScript?

4015

Como posso obter um carimbo de data / hora em JavaScript?

Algo semelhante ao carimbo de data e hora do Unix , ou seja, um único número que representa a hora e a data atuais. Como um número ou uma sequência.

pupeno
fonte
Como obter um timestamp de 64 bits em JS?
Alexander Mills
@AlexanderMills Como o JavaScript não suporta números inteiros de 64 bits, você terá que obter dois números inteiros de 32 bits. Faça outra pergunta.
Wizzwizz4

Respostas:

4914

Curto e Snazzy:

+ new Date()

Um operador unário como plusaciona o valueOfmétodo no Dateobjeto e retorna o carimbo de data / hora (sem nenhuma alteração).

Detalhes:

Em quase todos os navegadores atuais, você pode usar Date.now()para obter o registro de data e hora do UTC em milissegundos ; uma exceção notável a isso é o IE8 e versões anteriores (consulte a tabela de compatibilidade ).

Você pode facilmente fazer uma correção para isso, no entanto:

if (!Date.now) {
    Date.now = function() { return new Date().getTime(); }
}

Para obter o registro de data e hora em segundos , você pode usar:

Math.floor(Date.now() / 1000)

Ou, como alternativa, você pode usar:

Date.now() / 1000 | 0

O que deve ser um pouco mais rápido, mas também menos legível ( veja também esta resposta ).

Eu recomendaria usar Date.now()(com calço de compatibilidade). É um pouco melhor porque é mais curto e não cria um novo Dateobjeto. No entanto, se você não quiser um shim e compatibilidade máxima, poderá usar o método "antigo" para obter o registro de data e hora em milissegundos :

new Date().getTime()

Que você pode converter para segundos como este:

Math.round(new Date().getTime()/1000)

E você também pode usar o valueOfmétodo que mostramos acima:

new Date().valueOf()

Registro de data e hora em milissegundos

var timeStampInMs = window.performance && window.performance.now && window.performance.timing && window.performance.timing.navigationStart ? window.performance.now() + window.performance.timing.navigationStart : Date.now();

console.log(timeStampInMs, Date.now());

daveb
fonte
11
Outra exceção notável é o node.js. Eu vim aqui do Google procurando fazer o mesmo no nó
Milan Babuškov
57
Não Date.now() / 1000 | 0sofrerá com o problema do ano 2038 ? new Date('Jan 1, 2039') / 1000 | 0 == -2117514496
gengkev
3
ou ainda, w / o utilizando Math.floor ..~~(Date.now() / 1000)
Matej
14
@ MilanBabuškov mas node.js suportaDate.now()
OrangeDog
51
Embora +new Dataseja inteligente, não é legível por outros desenvolvedores. Date.now()é mais claro e garante que todos saibam o que está acontecendo.
Harry Sadler
514

Eu gosto disso, porque é pequeno:

+new Date

Eu também gosto disso, porque é igualmente curto e é compatível com navegadores modernos, e mais de 500 pessoas votaram que é melhor:

Date.now()
xer0x
fonte
636
Esta opção é uma má ideia. É facilmente esquecido, parece um erro de digitação e, na realidade, depende de um efeito colateral da linguagem. Eu vejo código incorreto.
Inanutshellus
10
@ Billy Pelo que me lembro, calculei o registro de data e hora nas duas soluções sugeridas 1 milhão de vezes cada e calculei o tempo médio de execução. Eu o executei no Firefox e Chrome, com o getTime sendo mais rápido nos dois navegadores. Dito isto, mesmo que fosse (marginalmente) mais lento eu escolheria new Date().getTime(). Felizmente para mim, a solução mais rápida já é a solução legível!
Inanutshellus
11
Acordado com @ FabrícioMatté. O comportamento unário do operador pode não ser rudimentar, mas se você não o atualizou, não espere poder funcionar efetivamente em muitas equipes.
Jason T Featheringham
9
@ Niklaus Isso é porque você está concatenando-o para outra string. Nesse caso, new Date().toString()é chamado.
Kirb
7
por curiosidade, o que o +operador está fazendo para que saia como uma corda?
Zadubz
276

O JavaScript funciona com o número de milissegundos desde a época, enquanto a maioria dos outros idiomas trabalha com os segundos. Você poderia trabalhar com milissegundos, mas assim que passar um valor para dizer PHP, as funções nativas do PHP provavelmente falharão. Portanto, para ter certeza de que eu sempre uso os segundos, não milissegundos.

Isso fornecerá um carimbo de data / hora do Unix (em segundos):

var unix = Math.round(+new Date()/1000);

Isso fornecerá os milissegundos desde a época (não o carimbo de data e hora do Unix):

var milliseconds = new Date().getTime();
Daithí
fonte
4
O PHP deve funcionar bem com milissegundos, pois os utiliza com a função microtime ().
Nico Burns
5
Enquanto microtime () estiver presente, a maioria das funções relacionadas ao tempo no php esperam que o registro de data e hora esteja em segundos e não em milissegundos. Além disso, microtime () retorna um valor flutuante (se você passar true), onde a parte decimal é a fração de segundo (precisa para o microssegundo), enquanto newDate (). GetTime () retorna um int onde apenas conta milissegundos desde a época. Por exemplo (php), se você chamasse floor (microtime (true)), seria efetivamente o mesmo que o tempo de chamada (), que é em segundos e não em micro ou milissegundos. Dividir por 1000 como acima é a solução mais fácil para isso.
Gregghz
49
Em vez de redondo, use o chão. 700 ms ainda não é o segundo inteiro
Anagmate
Unix timestampvs Seconds since the Epoch. Esses dois não deveriam significar a mesma coisa?
Mudiaga Ejenavi
147
var time = Date.now || function() {
  return +new Date;
};

time();
Staale
fonte
6
Por que o || operador? O Date.now () não está disponível em todos os navegadores?
22420 Chris Noe
67
Date.now () é a partir do JavaScript 1.5, e não está apoiado no IE 8.
Søren Løvborg
9
Os mecanismos que não foram atualizados para oferecer suporte ao método Date.now podem solucionar a ausência dele usando o seguinte calço: if (! Date.now) {Date.now) {Date.now = function now () {return + (new Date); }; }
Por Queston Aronsson
ou(Date.now||function(){return +new Date})();
130

Eu forneço várias soluções com descrições nesta resposta. Sinta-se à vontade para fazer perguntas se algo não estiver claro.
PS: infelizmente, alguém mesclou isso à resposta principal sem dar crédito.


Solução rápida e suja:

Date.now() /1000 |0

Aviso : pode quebrar em 2038 e retornar números negativos se você fizer a |0mágica. Use em Math.floor()vez disso

Math.floor() solução:

Math.floor(Date.now() /1000);

Alguma alternativa nerd de Derek 功夫 會 功夫 extraída dos comentários abaixo desta resposta:

new Date/1e3|0

Polyfill para começar a Date.now()trabalhar:

Para fazê-lo funcionar no IE, você pode fazer isso (Polyfill do MDN ):

if (!Date.now) {
    Date.now = function now() {
        return new Date().getTime();
    };
}

Se você não se importa com o ano / dia da semana / horário de verão, pode retirá-lo e usá-lo após 2038:

var now = (function () {
    var year = new Date(new Date().getFullYear().toString()).getTime();
    return function () {
        return Date.now() - year
    }
})();

Alguma saída de como será:

new Date()
Thu Oct 29 2015 08:46:30 GMT+0100 (Mitteleuropäische Zeit )
new Date(now())
Thu Oct 29 1970 09:46:30 GMT+0100 (Mitteleuropäische Zeit )

É claro que isso interromperá o horário de verão, mas, dependendo do que você estiver criando, isso poderá ser útil se você precisar executar operações binárias em registros de data e hora após a interrupção do int32 em 2038.

Isso também retornará valores negativos, mas somente se o usuário do PC em que você está executando seu código estiver alterando o relógio do PC pelo menos para 31 de dezembro do ano anterior.


Se você quer apenas saber o tempo relativo a partir do momento em que o código foi executado primeiro, você pode usar algo como isto:

var relativeTime = (function () {
    var start = Date.now();
    return function () {
        return Date.now() - start
    }
})();

Caso esteja usando o jQuery, você pode usar $.now()como descrito nos Documentos do jQuery, o que torna o polyfill obsoleto, pois $.now()internamente faz a mesma coisa:(new Date).getTime()

Se você está feliz com a versão do jQuery, considere a possibilidade de votar nesta resposta, pois eu não a encontrei.


Agora, uma pequena explicação do que |0faz:

Ao fornecer |, você instrui o intérprete a executar uma operação OR binária. As operações de bit requerem números absolutos, que transformam o resultado decimal Date.now() / 1000em um número inteiro.

Durante essa conversão, os decimais são removidos, resultando no mesmo resultado do uso, Math.floor()mas usando menos código.

Esteja avisado: ele converterá um duplo de 64 bits em um inteiro de 32 bits. Isso resultará em perda de informações ao lidar com grandes números. Os carimbos de data / hora serão interrompidos após 2038 devido ao estouro de número inteiro de 32 bits.


Para mais informações sobre Date.nowsiga este link: Date.now()@ MDN

GottZ
fonte
12
| 0 é semelhante ao Math.floor (), pois é uma operação de bit (que não funciona com flutuadores). normalmente é ainda mais rápido que Math.floor (), pois não é uma chamada de função, é um operador javascript nativo.
GottZ
8
Date.now()referência: developer.mozilla.org/pt-BR/docs/JavaScript/Reference/…
Web_Designer 16/03/13
@Christophe, por que você acha isso? por causa da correção do IE? exceto que parte é bem simples e personalizável, eu acho.
GottZ
5
polyfills / shims não são complicados. Eles são o resultado de ter que suportar 9 versões diferentes de navegadores e a indústria decidir escolher quais padrões adotam e quais apenas compõem.
Rlemon 24/09
8
Para referência, o mais compacto que você pode obter é new Date/1e3|0.
Derek朕會功夫
88
var timestamp = Number(new Date()); // current time as number
aemkei
fonte
61

O jQuery fornece seu próprio método para obter o registro de data e hora:

var timestamp = $.now();

(além de apenas implementar (new Date).getTime()expressão)

REF: http://api.jquery.com/jQuery.now/

Visão
fonte
2
O jQuery também cuidará de quaisquer problemas de compatibilidade entre navegadores com as diferentes APIs JavaScript.
Henry Heleine
4
@VisioN Procurei uma maneira de fazer registros de data e hora no Node.js. Encontrei uma pergunta javascript no stackoverflow e recebo uma resposta no jQuery, o que não ajuda. Javascript e jQuery são duas coisas. Se dermos respostas a todas as estruturas javascript existentes, acabaremos com um número possivelmente infinito de respostas, o que é contrário à filosofia de perguntas e respostas no stackoverflow. Também: i.stack.imgur.com/Ledgt.gif : D
Pierre Arlaud
5
@VisioN Quem disse que o javascript precisa ser usado em um navegador?
Pierre Arlaud 28/01
5
@PierreArlaud E quem disse que esta pergunta é apenas sobre o NodeJS?
VisioN 15/07/2015
2
@KingRider Não há necessidade parseInt, pois o valor resultante será sempre a Number.
VisioN
46

console.log(new Date().valueOf()); // returns the number of milliseconds since the epoch

Tom Viner
fonte
4
Isso é igual a +new Date:) :)
19h
8
apenas façaDate.now()
Orlando
@Orlando ver as outras respostas, o problema com NOW () é o suporte ao navegador
Christophe
@Christophe basta fazer um polyfill simples, developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/…
Orlando
4
@Orlando exatamente, não basta Date.now ()
Christophe
43

Além das outras opções, se você quiser um ISO com formato de data, poderá obtê-lo diretamente

console.log(new Date().toISOString());

Joaquinglezsantos
fonte
Ele não retorna um número inteiro com a pergunta solicitada!
alexventuraio 22/09
@AlexVentura com uma string ISO de formato de data, você pode instanciar um objeto de data e subtrair entre eles. Por exemplo:new Date("2017-05-04T07:11:28.940Z") - new Date("2017-05-04T07:11:14.092Z")
Joaquinglezsantos
41

Apenas para adicionar, aqui está uma função para retornar uma string de carimbo de data e hora em Javascript. Exemplo: 15:06:38 PM

function displayTime() {
    var str = "";

    var currentTime = new Date()
    var hours = currentTime.getHours()
    var minutes = currentTime.getMinutes()
    var seconds = currentTime.getSeconds()

    if (minutes < 10) {
        minutes = "0" + minutes
    }
    if (seconds < 10) {
        seconds = "0" + seconds
    }
    str += hours + ":" + minutes + ":" + seconds + " ";
    if(hours > 11){
        str += "PM"
    } else {
        str += "AM"
    }
    return str;
}
amor ao vivo
fonte
11
O OP está perguntando sobre um carimbo de data / hora inteiro; esta é uma representação em cadeia do tempo.
Brad Koch
3
"semelhante ao carimbo de data e hora do Unix, ou seja, um único número que representa a hora atual"
Brad Koch
Eu tinha um código para exibir o tempo, mas partes da Austrália mostravam a data completa, esse script me ajudou a decompô-lo e exibi-lo corretamente. (+1 para isso)
Syfer 07/02
40

Data , um objeto nativo em JavaScript é a maneira como obtemos todos os dados sobre o tempo.

Apenas tenha cuidado no JavaScript, o registro de data e hora depende do conjunto do computador cliente, para que não seja um registro de data e hora 100% exato. Para obter o melhor resultado, você precisa obter o registro de data e hora do lado do servidor .

Enfim, minha maneira preferida é usar baunilha. Essa é uma maneira comum de fazer isso em JavaScript:

Date.now(); //return 1495255666921

No MDN, é mencionado como abaixo:

O método Date.now () retorna o número de milissegundos decorridos desde 1 de janeiro de 1970 00:00:00 UTC.
Como now () é um método estático de Date, você sempre o usa como Date.now ().

Se você estiver usando uma versão abaixo do ES5, Date.now();não funcionará e precisará usar:

new Date().getTime();
Alireza
fonte
29

Um que eu ainda não vi

Math.floor(Date.now() / 1000); // current time in seconds

Outro que eu ainda não vi é

var _ = require('lodash'); // from here https://lodash.com/docs#now
_.now();
Belldandu
fonte
1
Date.now() /1000 |0faz o mesmo e tem sido respondida antes
GottZ
3
bem. Eu com certeza editei Math.floor()nele, mas apenas para deixar claro que ele tem o mesmo efeito que |0. eu não queria te machucar ou algo assim. Eu só queria lhe dizer que sua resposta de alguma forma já existe. olhando para todas as respostas dadas, há algumas que observam o piso de alguma maneira.
GottZ
Eu acho que importar toda a biblioteca Lodash apenas para uso _.now()é um pouco exagerado. Eu recomendaria apenas importar a funcionalidade Lodash que você precisa usar (neste caso, _.now () no NPM ), mas mesmo eles preteriram o pacote em favor do uso Date.now().
mgthomas99
27

O Date.getTime()método pode ser usado com um pequeno ajuste:

O valor retornado pelo método getTime é o número de milissegundos desde 1 de janeiro de 1970 00:00:00 UTC.

Divida o resultado por 1000 para obter o registro de data e hora do Unix, floorse necessário:

(new Date).getTime() / 1000

O Date.valueOf()método é funcionalmente equivalente a Date.getTime(), o que torna possível usar operadores aritméticos no objeto date para obter resultados idênticos. Na minha opinião, essa abordagem afeta a legibilidade.

Salman A
fonte
7
Você não precisa dos parênteses:new Date().getTime() / 1000
Ry-
14
Você não precisa deles, mas eles tornam o código mais legível (IMHO). Questão de gosto, eu acho.
Johndodo 18/09/12
Você nem precisa ()depois new Datee, .getTime()desde então /, converterá o objeto Date em um número.
Derek朕會功夫
25

O código Math.floor(new Date().getTime() / 1000)pode ser reduzido para new Date / 1E3 | 0.

Considere pular a getTime()chamada direta e usá-la | 0como um substituto para a Math.floor()função. Também é bom lembrar que 1E3é um equivalente mais curto para 1000(E maiúsculo é preferido que minúsculo para indicar 1E3como constante).

Como resultado, você obtém o seguinte:

var ts = new Date / 1E3 | 0;

console.log(ts);

Valentin Podkamennyi
fonte
3
@dchest "Math.floor(new Date().getTime()/1000)".length == 37; "new Date/1E3|0".length == 14; 37 -14 = 23 bytes;
Valentin Podkamennyi
@MatthieuCharbonnier O que exatamente é ilegível? Sinal de divisão, 1E3, tubo ou zero? Por favor, veja o trecho de código na minha resposta acima.
Valentin Podkamennyi 27/10
1
@ Valentin Você está minimizando / complicando o código simples, quase sem benefícios. Não vejo sentido em fazer isso. Não estamos no Code Golf!
Matthieu Charbonnier
@ MatthieuCharbonnier, Não há nada complicado, apenas sintaxe e operadores básicos. O ponto principal é escrever um código curto, claro e compreensível.
Valentin Podkamennyi 30/10
2
@ Valentin Por favor, explique-me como substituir Math.floor()por |0está tornando este código "claro e compreensível". Explique-me qual é o ponto de salvar 1 byte substituindo 1000por 1E3. Isto é ridículo. Eu vejo código incorreto.
Matthieu Charbonnier
24

atuação

Hoje - 2020.04.23 Realizo testes para soluções escolhidas. Testei no MacOs High Sierra 10.13.6 no Chrome 81.0, Safari 13.1, Firefox 75.0

Conclusões

  • A solução Date.now()(E) é a mais rápida no Chrome e Safari e a segunda no Firefox, e provavelmente é a melhor opção para uma solução rápida entre navegadores
  • A solução performance.now()(G), o que é surpreendente, é mais do que 100x mais rápida que outras soluções no Firefox, mas mais lenta no Chrome
  • As soluções C, D, F são bastante lentas em todos os navegadores

insira a descrição da imagem aqui

Detalhes

Resultados para chrome

insira a descrição da imagem aqui

Você pode executar o teste em sua máquina AQUI

O código usado nos testes é apresentado no snippet abaixo

Kamil Kiełczewski
fonte
Eu ficaria interessado se você testasse performance.now(), pois é o mais preciso em termos de carimbo.
SamsonTheBrave
@SamsonTheBrave obrigado pelo seu comentário - eu atualizo a resposta
Kamil Kiełczewski
Incrível, obrigado pela sua atualização! Percebi que você estava vendo uma diferença no desempenho agora na velocidade do Firefox. Isso pode ser o resultado do Firefox, privacy.reduceTimerPrecisionque arredonda os resultados para o milissegundo mais próximo. Também é ativado por padrão, mas pode ser desativado. developer.mozilla.org/pt-BR/docs/Web/API/Performance/now
SamsonTheBrave
22

Eu recomendo usar moment.js. Para obter o número de milissegundos desde a época do UNIX, faça

moment().valueOf()

Para obter o número de segundos desde a época do UNIX, faça

moment().unix()

Você também pode converter horários da seguinte forma:

moment('2015-07-12 14:59:23', 'YYYY-MM-DD HH:mm:ss').valueOf()

Eu faço isso o tempo todo. Sem trocadilhos.

Para usar moment.jsno navegador:

<script src="moment.js"></script>
<script>
    moment().valueOf();
</script>

Para obter mais detalhes, incluindo outras maneiras de instalar e usar o MomentJS, consulte seus documentos.

Pilha completa
fonte
21

Para um registro de data e hora com resolução de microssegundos, há performance.now:

function time() { 
  return performance.now() + performance.timing.navigationStart;
}

Isso poderia, por exemplo 1436140826653.139, render , enquanto Date.nowapenas dá 1436140826653.

iter
fonte
21

Você só pode usar

    var timestamp = new Date().getTime();
    console.log(timestamp);

para obter o registro de data e hora atual. Não há necessidade de fazer nada extra.

Jitendra Pawar
fonte
20

Aqui está uma função simples para gerar registro de data e hora no formato: mm / dd / aa hh: mi: ss

function getTimeStamp() {
    var now = new Date();
    return ((now.getMonth() + 1) + '/' +
            (now.getDate()) + '/' +
             now.getFullYear() + " " +
             now.getHours() + ':' +
             ((now.getMinutes() < 10)
                 ? ("0" + now.getMinutes())
                 : (now.getMinutes())) + ':' +
             ((now.getSeconds() < 10)
                 ? ("0" + now.getSeconds())
                 : (now.getSeconds())));
}
deepakssn
fonte
10
@ b123400 - Aqui está a versão Lisp: (new (chain (-date) (to-i-s-o-string))).
Inaimathi
20

// The Current Unix Timestamp
// 1443534720 seconds since Jan 01 1970. (UTC)

// seconds
console.log(Math.floor(new Date().valueOf() / 1000)); // 1443534720
console.log(Math.floor(Date.now() / 1000)); // 1443534720
console.log(Math.floor(new Date().getTime() / 1000)); // 1443534720

// milliseconds
console.log(Math.floor(new Date().valueOf())); // 1443534720087
console.log(Math.floor(Date.now())); // 1443534720087
console.log(Math.floor(new Date().getTime())); // 1443534720087

// jQuery
// seconds
console.log(Math.floor($.now() / 1000)); // 1443534720
// milliseconds
console.log($.now()); // 1443534720087
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

blueberry0xff
fonte
16

Qualquer navegador não suportado Date.now, você pode usá-lo para obter a data e hora atuais:

currentTime = Date.now() || +new Date()
mr.boyfox
fonte
3
(Reformulando meu comentário) Seu código tem um problema: ele executa o método Date.now em vez de verificar seu suporte primeiro. Em browsres mais antigos, o Date.now não é um erro de função .
Salman A
Talvez a melhor alternativa seria usar um operador ternário para afirmar que Date.nowrealmente existe (e é uma função), antes de tentar invocá-lo: currentTime = typeof Date.now === "function" ? Date.now() : +new Date().
mgthomas99
14

Este aqui tem uma solução: que converte carimbo unixtime para tim em js tente isso

var a = new Date(UNIX_timestamp*1000);
var hour = a.getUTCHours();
var min = a.getUTCMinutes();
var sec = a.getUTCSeconds();
Anoop PS
fonte
14

Aprendi uma maneira muito legal de converter um determinado objeto Date em um carimbo de data / hora Unix a partir do código fonte do JQuery Cookie outro dia.

Aqui está um exemplo:

var date = new Date();
var timestamp = +date;
George
fonte
Eu estava prestes a escrever o novo objeto Date () .Você pode consolar log (new Date ()) e, em seguida, percorrer os métodos relacionados sob a new Date () objeto / função
sg28
14

Se você deseja uma maneira básica de gerar um carimbo de data / hora no Node.js, isso funciona bem.

var time = process.hrtime();
var timestamp = Math.round( time[ 0 ] * 1e3 + time[ 1 ] / 1e6 );

Nossa equipe está usando isso para interromper o cache em um ambiente de host local. A saída é /dist/css/global.css?v=245521377onde 245521377está o registro de data e hora gerado por hrtime().

Espero que isso ajude, os métodos acima também podem funcionar, mas eu achei a abordagem mais simples para as nossas necessidades no Node.js.

Kevin Leary
fonte
13

Isso parece funcionar.

console.log(clock.now);
// returns 1444356078076

console.log(clock.format(clock.now));
//returns 10/8/2015 21:02:16

console.log(clock.format(clock.now + clock.add(10, 'minutes'))); 
//returns 10/8/2015 21:08:18

var clock = {
    now:Date.now(),
    add:function (qty, units) {
            switch(units.toLowerCase()) {
                case 'weeks'   :  val = qty * 1000 * 60 * 60 * 24 * 7;  break;
                case 'days'    :  val = qty * 1000 * 60 * 60 * 24;  break;
                case 'hours'   :  val = qty * 1000 * 60 * 60;  break;
                case 'minutes' :  val = qty * 1000 * 60;  break;
                case 'seconds' :  val = qty * 1000;  break;
                default       :  val = undefined;  break;
                }
            return val;
            },
    format:function (timestamp){
            var date = new Date(timestamp);
            var year = date.getFullYear();
            var month = date.getMonth() + 1;
            var day = date.getDate();
            var hours = date.getHours();
            var minutes = "0" + date.getMinutes();
            var seconds = "0" + date.getSeconds();
            // Will display time in xx/xx/xxxx 00:00:00 format
            return formattedTime = month + '/' + 
                                day + '/' + 
                                year + ' ' + 
                                hours + ':' + 
                                minutes.substr(-2) + 
                                ':' + seconds.substr(-2);
            }
};
Ronnie Royston
fonte
13

Se for para fins de registro, você pode usar o ISOString

new Date().toISOString()

"2019-05-18T20: 02: 36.694Z"

cenkarioz
fonte
12

Para usuários lodash e sublinhado , use _.now.

var timestamp = _.now(); // in milliseconds
Muhammad Reda
fonte
10

O Moment.js pode abstrair muita dor ao lidar com datas Javascript.

Consulte: http://momentjs.com/docs/#/displaying/unix-timestamp/

moment().unix();
Rimian
fonte
2
Observe que isso fornece o número de segundos (não milissegundos) desde a época do UNIX. Se você quiser os milissegundos, use moment().valueOf(). Veja minha resposta.
FullStack 14/07
9

No momento em que escrevemos isso, a resposta principal tem 9 anos e muita coisa mudou desde então - não menos importante, temos suporte quase universal para uma solução não-hacky:

Date.now()

Se você quiser ter certeza absoluta de que isso não será interrompido em algum navegador antigo (pré ie9), poderá colocá-lo atrás de uma verificação, como:

const currentTimestamp = (!Date.now ? +new Date() : Date.now());

Isso retornará os milissegundos desde o tempo da época, é claro, não segundos.

Documentação MDN em Date.now

Olemak
fonte
8

maneira mais simples:

var timeStamp=event.timestamp || new Date().getTime();
Vicky Gonsalves
fonte
Sabe de onde eventvem. Você precisa dar uma explicação melhor da maneira como a resolve, em vez de escrever uma resposta. Por favor!
alexventuraio 22/09
Eu estava prestes a escrever o novo objeto Date () .Você pode consolar log (new Date ()) e, em seguida, percorrer os métodos relacionados sob a new Date () objeto / função
sg28