Создай момент из эпохи - PullRequest
0 голосов
/ 27 октября 2018

Я хочу использовать момент для управления временем.

Для этого я хочу проанализировать строку в момент и затем преобразовать ее в миллисекунды.

Я делаю это так:

const str = "1:12.123"; // 1m, 12s, 123ms = 72123ms
const parsed = moment(str, "m:ss.SSS");

Проблема в том, что этот метод создает момент из «сегодня», а не из эпохи.

console.log(parsed); // moment("2018-10-27T00:01:12.123")
console.log(parsed.unix()); // 1540609272, not 72123

Есть ли способ разобрать строку с эпохи, а не с сегодняшнего дня? Или чтобы выполнить то, что я хочу, я должен сам разобрать строку в числа и вручную преобразовать ее в миллисекунды?

1 Ответ

0 голосов
/ 27 октября 2018

A moment - это отметка времени, вам нужно duration.Из Moment.js ' docs :

... момент определяется как отдельные моменты времени, длительности - как отрезки времени.Длительности не имеют определенной даты начала и окончания.

Итак, используя один из объектов Moment.js * duration:

const d = moment.duration('0:1:12.123');
console.log(d.asMilliseconds());

Обратите внимание на ведущий 0: в строке, то есть количество часов, котороенеобходимо, чтобы moment.duration мог понять формат, в котором вы передаете строку.

Проверьте документацию здесь: Moment.js |Документы

Примечание:

Вы упомянули эпоху, как если бы это было 1 января года 0, обратите внимание на компьютеры, когда мы говорим об эпохе, обычно это UnixЭпоха : 1970-01-01.Поэтому запрос миллисекунд от эпохи даст вам гораздо больше лет, чем хотелось бы.

...