Posso converter a data iso em milissegundos? por exemplo, eu quero converter este iso
2012-02-10T13:19:11+0000
a milissegundos.
Porque eu quero comparar a data atual com a data de criação. E a data de criação é uma data iso.
javascript
iso
isodate
Robin Carlo Catacutan
fonte
fonte
1328796537
, mas no fb api, a data é mostrada em iso2012-02-10T13:18:45+0000
date1.getTime() - date2.getTime()
- é tudo que você precisaRespostas:
Tente isto
var date = new Date("11/21/1987 16:00:00"); // some mock date var milliseconds = date.getTime(); // This will return you the number of milliseconds // elapsed from January 1, 1970 // if your date is less than that date, the value will be negative console.log(milliseconds);
EDITAR
Você forneceu uma data ISO. Também é aceito pelo construtor do
Date
objetovar myDate = new Date("2012-02-10T13:19:11+0000"); var result = myDate.getTime(); console.log(result);
Editar
O melhor que descobri é livrar-me do deslocamento manualmente.
var myDate = new Date("2012-02-10T13:19:11+0000"); var offset = myDate.getTimezoneOffset() * 60 * 1000; var withOffset = myDate.getTime(); var withoutOffset = withOffset - offset; console.log(withOffset); console.log(withoutOffset);
Parece funcionar. No que diz respeito aos problemas com a conversão da string ISO em um
Date
objeto, consulte os links fornecidos.EDITAR
Corrigido o bug com conversão incorreta para milissegundos de acordo com o comentário de Prasad19sara.
fonte
var myDate = new Date("2012-02-10T13:19:11+0000");
Uma abreviatura das soluções anteriores é
var myDate = +new Date("2012-02-10T13:19:11+0000");
Ele faz uma conversão de tipo em tempo real e exibe a data diretamente no formato de milissegundos.
Outra maneira é também usar o método de análise do utilitário Date, que emite apenas o tempo EPOCH em milissegundos.
var myDate = Date.parse("2012-02-10T13:19:11+0000");
fonte
+new Date()
retorna1447857230137
que é o tempo em milissegundos.const dateMillis = Number(new Date('2017-09-26T20:24:18.801Z'))
masnew Date('2017-09-26T20:24:18.801Z').getTime()
ounew Date('2017-09-26T20:24:18.801Z').valueOf()
é ainda mais legível.Outra opção a partir de 2017 é usar
Date.parse()
. A documentação do MDN aponta, no entanto, que ele não é confiável antes do ES5.var date = new Date(); // today's date and time in ISO format var myDate = Date.parse(date);
Veja o violino para mais detalhes.
fonte
Outra solução possível é comparar a data atual com
January 1, 1970
, você pode obterJanuary 1, 1970
pornew Date(0)
;var date = new Date(); var myDate= date - new Date(0);
fonte
Sim, você pode fazer isso em uma única linha
let ms = Date.parse('2019-05-15 07:11:10.673Z'); console.log(ms);//1557904270673
fonte
Outra solução poderia ser usar o analisador de objeto Number assim:
let result = Number(new Date("2012-02-10T13:19:11+0000")); let resultWithGetTime = (new Date("2012-02-10T13:19:11+0000")).getTime(); console.log(result); console.log(resultWithGetTime);
Isso se converte em milissegundos, assim como
getTime()
noDate
objetofonte
var date = new Date() console.log(" Date in MS last three digit = "+ date.getMilliseconds()) console.log(" MS = "+ Date.now())
Usando isso, podemos obter a data em milissegundos
fonte
var data = nova data (string_de_data); var milissegundos = date.getTime ();
Isso funcionou para mim!
fonte
se deseja converter a data UTC em
sintaxe de milissegundos : Date.UTC (ano, mês,? dia,? horas,? min,? seg,? milissegundo);
por exemplo :
date_in_mili = Date.UTC(2020, 07, 03, 03, 40, 40, 40);
console.log('miliseconds', date_in_mili);
fonte
No caso, se alguém quiser obter apenas o tempo de uma data ISO, o seguinte será útil. Eu estava procurando por isso e não consegui encontrar uma pergunta para isso. Portanto, caso alguém veja, será útil.
let isoDate = '2020-09-28T15:27:15+05:30'; let result = isoDate.match(/\d\d:\d\d/); console.log(result[0]);
A saída será a única hora de isoDate que é,
15:27
fonte