moment.js получает текущее время в миллисекундах?

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

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

Это решение работает, протестируйте его, но я бы предпочел просто использовать момент api вместо собственного кода.

Этот код возвращает время СЕГОДНЯ в миллисекундах. Мне нужно, чтобы вызвать другую функцию в миллисекундах ... Не могу использовать эпоху. Требуется сегодняшнее время в миллисекундах. 9:00 = 3,24e + 7 миллисекунд 21:00 = 6,84e + 7 миллисекунд.


источник
9
var timeInMilliseconds = moment().valueOf();См. Jsfiddle.net/rc1s2ek0
IronAces
это с эпохи .... Мне нужно сегодняшнее время в миллисекундах, а не эпоху.
Вы правы, но в вашем вопросе указано, что вам нужно время в миллисекундах ...
IronAces
2
Легче всего, вероятно, получить разницу между эпохой настоящего минус эпоха начала сегодняшнего дня
Герт-янв

Ответы:

153

Из документов: http://momentjs.com/docs/#/parsing/unix-timestamp-milliseconds/

Так что используйте любой из них:


moment(...).valueOf()

для анализа уже существующей даты и преобразования представления в метку времени unix


moment().valueOf()

для текущей метки времени unix

Кристиан Кавалли
источник
38

См. Эту ссылку http://momentjs.com/docs/#/displaying/unix-timestamp-milliseconds/

valueOf() это функция, которую вы ищете.

Редактирую свой ответ (OP хочет миллисекунды сегодня, а не с эпохи)

Вам нужна milliseconds()функция ИЛИ вы можете пойти по маршрутуmoment().valueOf()

Джеймс
источник
1
Спасибо, но я спрашиваю не об этом, это с начала года ... сегодня текущее время в миллисекундах.
@ code20 ага, попалась. Похоже, Эми ответила на это выше. Вы ищете функцию milliseconds () или можете создать пустой момент и использовать функцию valueOf. Я пересмотрел свой ответ выше. У momentjs действительно хорошая документация, и она довольно организована. С ним можно делать довольно интересные вещи. Вы должны посмотреть на него, если у вас будет возможность!
Джеймс
Ответ Эми неверен. это время 0-999 миллисекунд, я прочитал большое количество документов и искал. На самом деле не могу понять этого.
@ code20 Вы хотите узнать сегодняшнюю дату в миллисекундах? Я немного запутался. Вы не можете использовать время в миллисекундах?
Джеймс
1
@ code20 вам действительно нужно быть более конкретным в том, чего вы хотите. До сих пор вы получали ответы о миллисекундах с той эпохи или о «миллисекундах текущего времени», как вы и просили. Миллисекунды с полуночи совсем другие.
Эми
21
var timeArr = moment().format('x');

возвращает миллисекундную временную метку Unix согласно документации format () .

Александр Головчук
источник
8
Будьте осторожны, он возвращает метку времени в миллисекундах, но в виде String, prefere moment (). ValueOf (), который возвращает число
Жюльен
10

Вы можете вычесть текущую отметку времени из 12 часов утра того же дня.

Используя текущую метку времени:

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

Использование произвольного дня:

moment(someDate).valueOf() - moment(someDate).startOf('day').valueOf()
Джереми Квик
источник
0

Вы можете просто получить отдельные временные компоненты и рассчитать общую сумму. Кажется, вы ожидаете, что Moment уже будет иметь эту функцию, аккуратно упакованную для вас, но это не так. Я сомневаюсь, что это то, в чем люди часто нуждаются.

Пример:

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>

JLRishe
источник
0

Поскольку это первая ветка из Google, которую я нашел, я нашел один точный и ленивый способ:

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()

теперь просто добавьте несколько прототипов (например, toDuration ()) / .asMilliseconds () в момент, и вы можете легко переключиться на миллисекунды () или что-то еще!

0xCDCDCDCD
источник
-4

Чтобы получить миллисекунды текущего времени, используйте http://momentjs.com/docs/#/get-set/millisecond/

var timeInMilliseconds = moment().milliseconds();
Эми
источник
это миллисекунды 0-999 Мне нужно сегодняшнее время (часы минуты секунды), преобразованное в миллисекунды ...