moment.js obtém a hora atual em milissegundos?


96
var timeArr = moment().format('HH:mm:ss').split(':');

var timeInMilliseconds = (timeArr[0] * 3600000) + (timeArr[1] * 60000);

Esta solução funciona, teste-a, mas prefiro apenas usar a API do momento em vez de usar meu próprio código.

Este código retorna o tempo TODAYS em milissegundos. Preciso chamar outra função em milissegundos ... Não é possível usar o epoch. Precisa da hora de hoje formatada em milissegundos. 9h = 3,24e + 7 milissegundos 21h = 6,84e + 7 milissegundos.


9
var timeInMilliseconds = moment().valueOf();Consulte jsfiddle.net/rc1s2ek0
IronAces

isso é desde a época ... Eu preciso do tempo de hoje em milissegundos, não da época.

Você está certo, mas sua pergunta afirma que você quer o tempo em milissegundos ...
IronAces

2
O mais fácil é provavelmente obter a diferença de época de agora menos época de início de hoje
Geert-Jan

Respostas:



38

Veja este link http://momentjs.com/docs/#/displaying/unix-timestamp-milliseconds/

valueOf() é a função que você está procurando.

Editando minha resposta (OP quer milissegundos de hoje, não desde a época)

Você quer a milliseconds()função OU pode seguir o caminho demoment().valueOf()


1
Obrigado, mas não é isso que estou perguntando, isso é desde o ano da época ... a hora atual em milissegundos.

@ code20 ahh, entendi. Parece que Amy respondeu acima. Você está procurando a função milissegundos () ou pode criar um momento vazio e usar a função valueOf. Eu revisei minha resposta acima. O momentjs tem uma documentação muito boa sobre essas coisas e é bem organizado. Você pode fazer algumas coisas bem legais com ele. Você deve dar uma olhada se tiver uma chance!
Brandon,

A resposta de Amys está incorreta. ou seja, 0-999 milissegundos, li uma boa quantidade de documentos e pesquisei. Realmente não consigo descobrir isso.

@ code20 Você quer obter os milissegundos da data de hoje? Estou um pouco confuso. Você não pode usar o tempo de época de milissegundos?
Brandon,

1
@ code20 você realmente precisa ser mais específico sobre o que deseja. Até agora você recebeu respostas para ms desde a época, ou os "ms da hora atual", que foi o que você solicitou. Milissegundos desde a meia-noite é bem diferente.
Amy de

21
var timeArr = moment().format('x');

retorna o Unix Milissegundo Timestamp de acordo com a documentação format () .


8
Cuidado, ele retorna o carimbo de data / hora em milissegundos, mas como uma String, prefere moment (). ValueOf () que retorna um número
Julien

11

Você pode subtrair o carimbo de hora atual das 12h do mesmo dia.

Usando o carimbo de data / hora atual:

moment().valueOf() - moment().startOf('day').valueOf()

Usando dia arbitrário:

moment(someDate).valueOf() - moment(someDate).startOf('day').valueOf()

0

Você pode apenas obter os componentes de tempo individuais e calcular o total. Você parece estar esperando que o Moment já tenha esse recurso cuidadosamente embalado para você, mas não tem. Duvido que seja algo de que as pessoas precisem com frequência.

Exemplo:

var m = moment();

var ms = m.milliseconds() + 1000 * (m.seconds() + 60 * (m.minutes() + 60 * m.hours()));

console.log(ms);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>


0

Uma vez que este tópico é o primeiro do Google que encontrei, uma maneira precisa e preguiçosa que encontrei é:

const momentObject = moment().toObject();
// date doesn't exist with duration, but day does so use it instead
//   -1 because moment start from date 1, but a duration start from 0
const durationCompatibleObject = { ... momentObject, day: momentObject.date - 1 };
delete durationCompatibleObject.date;

const yourDuration = moment.duration(durationCompatibleObject);
// yourDuration.asMilliseconds()

agora basta adicionar alguns protótipos (como toDuration ()) / .asMilliseconds () no momento e você pode facilmente alternar para milissegundos () ou qualquer outra coisa!


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.