moment.js aktuelle Zeit in Millisekunden erhalten?

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

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

Diese Lösung funktioniert, testen Sie sie, aber ich würde lieber die Moment-API verwenden, anstatt meinen eigenen Code zu verwenden.

Dieser Code gibt HEUTE die Zeit in Millisekunden zurück. Ich brauche es, um eine andere Funktion in Millisekunden aufzurufen ... Kann die Epoche nicht verwenden. Brauchen Sie die heutige Zeit in Millisekunden. 9:00 Uhr = 3,24e + 7 Millisekunden 21:00 Uhr = 6,84e + 7 Millisekunden.


quelle
9
var timeInMilliseconds = moment().valueOf();Siehe jsfiddle.net/rc1s2ek0
IronAces
Das ist seit der Epoche ... Ich brauche die heutige Zeit in Millisekunden, nicht die Epoche.
Sie haben Recht, aber Ihre Frage besagt, dass Sie die Zeit in Millisekunden wollen ...
IronAces
2
Am einfachsten ist es wahrscheinlich, den Unterschied zwischen der Epoche von heute und der Epoche des heutigen Starts zu ermitteln
Geert-Jan

Antworten:

152

Aus den Dokumenten: http://momentjs.com/docs/#/parsing/unix-timestamp-milliseconds/

Verwenden Sie also eine der folgenden Methoden:


moment(...).valueOf()

um ein bereits vorhandenes Datum zu analysieren und die Darstellung in einen Unix-Zeitstempel zu konvertieren


moment().valueOf()

für den aktuellen Unix-Zeitstempel

Cristian Cavalli
quelle
38

Siehe diesen Link http://momentjs.com/docs/#/displaying/unix-timestamp-milliseconds/

valueOf() ist die Funktion, die Sie suchen.

Bearbeiten meiner Antwort (OP möchte Millisekunden von heute, nicht seit der Epoche)

Sie möchten die milliseconds()Funktion ODER Sie könnten den Weg gehenmoment().valueOf()

James
quelle
1
Danke, aber das ist nicht das, was ich frage, das ist seit dem Epochenjahr ... die heutige aktuelle Zeit in Millisekunden.
@ code20 ahh, gotcha. Sieht so aus, als hätte Amy es oben beantwortet. Sie suchen nach der Funktion milliseconds () oder Sie können einen leeren Moment erstellen und die Funktion valueOf verwenden. Ich habe meine Antwort oben überarbeitet. momentjs hat wirklich gute Dokumentation zu diesen Sachen und es ist ziemlich gut organisiert. Sie können ein paar hübsche Sachen damit machen. Sie sollten darüber nachdenken, wenn Sie eine Chance bekommen!
James
Amys Antwort ist falsch. das ist Zeit 0-999 Millisekunden, ich habe eine gute Menge der Dokumente gelesen und gesucht. Kann das wirklich nicht herausfinden.
@ code20 Sie möchten die Millisekunden des heutigen Datums abrufen? Ich bin ein wenig verwirrt. Sie können die Millisekunden-Epochenzeit nicht verwenden?
James
1
@ code20 Sie müssen wirklich genauer sein, was Sie wollen. Bisher haben Sie seit der Epoche Antworten für ms erhalten, oder die "aktuelle Zeit ms", die Sie angefordert haben. Millisekunden seit Mitternacht sind ganz anders.
Amy
21
var timeArr = moment().format('x');

Gibt den Unix-Millisekunden-Zeitstempel gemäß der format () -Dokumentation zurück .

Alexandr Golovchuk
quelle
8
Seien Sie vorsichtig, es gibt den Zeitstempel in Millisekunden zurück, aber als Zeichenfolge bevorzugen Sie moment (). ValueOf (), der eine Zahl zurückgibt
Julien
10

Sie können den aktuellen Zeitstempel von 12 Uhr am selben Tag abziehen.

Aktuellen Zeitstempel verwenden:

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

Beliebigen Tag verwenden:

moment(someDate).valueOf() - moment(someDate).startOf('day').valueOf()
Jeremy Quick
quelle
0

Sie können einfach die einzelnen Zeitkomponenten abrufen und die Summe berechnen. Sie scheinen zu erwarten, dass Moment diese Funktion bereits ordentlich für Sie verpackt hat, aber das ist nicht der Fall. Ich bezweifle, dass die Leute das sehr oft brauchen.

Beispiel:

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
quelle
0

Da dieser Thread der erste von Google ist, den ich gefunden habe, ist ein genauer und fauler Weg, den ich gefunden habe:

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

Fügen Sie jetzt einfach einige Prototypen (wie z. B. toDuration ()) / .asMilliseconds () in den Moment ein, und Sie können ganz einfach zu Millisekunden () oder was auch immer wechseln!

0xCDCDCDCD
quelle