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
Найпростіше, мабуть, отримати різницю епохи, яка зараз мінус епоха початку сьогоднішнього дня
Geерт-Січ

Відповіді:



38

Див. Це посилання http://momentjs.com/docs/#/displaying/unix-timestamp-milliseconds/

valueOf() це функція, яку ви шукаєте.

Редагування моєї відповіді (OP хоче мілісекунди сьогодні, а не з епохи)

Вам потрібна milliseconds()функція АБО ви могли б пройти маршрутmoment().valueOf()


1
Дякую, але це не те, про що я прошу, це з епохи ... сьогоднішній поточний час у мілісекундах.

@ code20 ах, зрозуміло. Схоже, Емі відповіла на нього вище. Ви шукаєте функцію мілісекунд (), або ви можете створити порожній момент і скористатися функцією valueOf. Я переглянув свою відповідь вище. momentjs має дуже хорошу документацію щодо цього, і це досить організовано. Ви можете зробити з ним досить акуратні речі. Вам слід переглянути це, якщо у вас є можливість!
Джеймс,

Відповідь Еміс неправильна. це час 0-999 мілісекунд, я прочитав значну кількість документів і здійснив пошук. Дійсно не можу цього зрозуміти.

@ code20 Ви хочете отримати мілісекунди сьогоднішньої дати? Я трохи розгублений. Ви не можете використовувати час епохи мілісекунд?
James

1
@ code20 вам дійсно потрібно бути більш конкретним щодо того, що ви хочете. Поки що ви отримали відповіді на ms з епохи, або "поточний час ms", що саме ви просили. Мілісекунди з півночі - це зовсім інакше.
Емі


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>


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 () у момент, і ви можете легко переключитися на мілісекунди () або що завгодно!


-4

Щоб отримати мілісекунди поточного часу, використовуйте http://momentjs.com/docs/#/get-set/millisecond/

var timeInMilliseconds = moment().milliseconds();

це мілісекунди 0-999 Мені потрібен сьогоднішній час (год хв секунд), перетворений в мілісекунди .....
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.