Wie kann ich den aktuellen Zeitstempel mit Moment.js zurückgeben?

157

Leute,

Ich versuche die MomentJS-API zu verstehen. Was ist der geeignete Weg, um die aktuelle Zeit auf der Maschine zu erhalten?

var CurrentDate = moment();

vs.

var CurrentDate = moment().format();

Der Versuch, ihre Dokumente zu analysieren, ist nicht ersichtlich, was verwendet werden soll.

http://momentjs.com/docs/#/query/is-a-moment/

Cmag
quelle
1
Die aktuelle Zeit als was? Unix-Zeitstempel?
Koma
Ich würde mir den RFC3339 oder was auch immer die Internet-Standard-ID für die Rückkehr zu Kunden usw.
vorstellen
2
Zurück zum Client ... hummm ... Ich denke, Sie bekommen es in nodejs und senden es an den Browser, um es erneut in eine momentjs-Instanz zu konvertieren?
Koma
1
Entschuldigung, haben Sie meine Antwort hilfreich gefunden?
Koma
1
absolut, ich denke :) stellte eine var now = new Date().getTime(); userObject.registered = moment(now).toDate();
kurze

Antworten:

238

Hier weisen Sie CurrentDate eine Instanz von momentjs zu:

var CurrentDate = moment();

Hier nur eine Zeichenfolge, das Ergebnis der Standardformatierung einer momentjs-Instanz:

var CurrentDate = moment().format();

Und hier die Anzahl der Sekunden seit Januar ... nun, Unix-Zeitstempel:

var CurrentDate = moment().unix();

Und hier noch eine Zeichenfolge wie ISO 8601 ( Was ist der Unterschied zwischen den Datumsformaten ISO 8601 und RFC 3339? ):

var CurrentDate = moment().toISOString();

Und das kann man auch machen:

var a = moment();
var b = moment(a.toISOString());

console.log(a.isSame(b)); // true
Koma
quelle
Wäre das akzeptabel? var now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag
1
@Cmag, ich verstehe die Frage nicht, aber schauen Sie sich das an: jsfiddle.net/coma/bLe31qq0 , wie Sie dort sehen können, ist die Momentinstanz , auch wenn sie nach einer Sekunde dieselbe Zeit behält, seit sie eingefroren ist, die gleiches Verhalten wie neues Datum ().
Koma
Also ist es das gleiche Verhalten?
Cmag
1
@Cmag, Ja, stellen Sie sich momentjs als Date-Objekt für Steroide vor und verwenden Sie die toDate-Methode nur, wenn Sie mit Bibliotheken von Drittanbietern arbeiten, die ein unformatiertes Date-Objekt benötigen. Mit momentjs sind komplexe Zeitberechnungen mehr als einfach und angenehm. Ich habe damit einen Datepicker hergestellt: github.com/coma/MomentPicker/blob/master/src/MomentPicker.js
Koma
Die .format('x')Option generiert auch eine Zeitstempelzeichenfolge.
Jimmy Knoot
66

moment().unix() Sie erhalten einen Unix-Zeitstempel

moment().valueOf() Sie erhalten einen vollständigen Zeitstempel

Sabrina Luo
quelle
1
So formatieren Sie `var CurrentDateUnixTimestamp = moment (). Unix (); moment.unix (CurrentDateUnixTimestamp) .format ("JJJJ-MM-TT HH: mm"); `
Glitch
Was ist der Unterschied zwischen unixZeitstempel und fullZeitstempel? Ich nehme an, der fullZeitstempel gibt den ~ Zeitfluss ~ in Millisekunden seit dem 1. Januar 1970 an, aber ich kann den anderen nicht herausfinden.
DongBin Kim
3
.unix()gibt Ihnen den Unix-Zeitstempel in Sekunden, .valueOf()gibt Ihnen den Unix-Zeitstempel in Millisekunden (AKA, was ich immer als Unix-Zeitstempel angesehen habe).
Andrew Koster
33

Immer noch keine Antwort. Moment.js - Kann alles andere als eine so einfache Aufgabe erledigen.

Ich benutze dies:

moment().toDate().getTime()
Katamphetamin
quelle
1
Ich mag das besser als +moment(). Mehr Zeichen, aber leichter zu lesen und zu verstehen.
Joemaller
Ich würde dem @joemaller zustimmen, Javascript's Eigenheiten können Sie auffangen, wenn sie nicht früh aufgegriffen werden lol
Ian Brindley
11

Wenn Sie nur die Millisekunden seit dem 01. Januar 1970 möchten, können Sie verwenden

var theMoment = moment(); // or whatever your moment instance is
var millis;

millis = +theMoment; // a short but not very readable form
// or
millis = theMoment.valueOf();
// or (almost sure not as efficient as above)
millis = theMoment.toDate().getTime();
hgoebl
quelle
4

Versuche dies

console.log(moment().format("MM ddd, YYYY hh:mm:ss a"));

console.log(moment().format("MM ddd, YYYY hh:mm:ss a"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>

Durgpal Singh
quelle
2

Versuchen Sie Folgendes:

console.log(moment().format('L'));
moment().format('L');    // 05/25/2018
moment().format('l');    // 5/25/2018

Formatdaten:

moment().format('MMMM Do YYYY, h:mm:ss a'); // May 25th 2018, 2:02:13 pm
moment().format('dddd');                    // Friday
moment().format("MMM Do YY");               // May 25th 18
moment().format('YYYY [escaped] YYYY');     // 2018 escaped 2018
moment().format();                          // 2018-05-25T14:02:13-05:00

Besuchen Sie: https://momentjs.com/ für weitere Informationen.

Mai Mijangos
quelle
1

Get by Location:

moment.locale('pt-br')
return moment().format('DD/MM/YYYY HH:mm:ss')
Darlan Dieterich
quelle
1
Was macht .locale ()?
Charith_32
Hallo @ Charith_32, im Grunde übersetzt dies Ihr definiertes Format. EX; .format ('LLL')
Darlan Dieterich
1

Ich möchte hinzufügen, dass Sie die gesamten Dateninformationen in einem Objekt haben können mit:

const today = moment().toObject();

Sie sollten ein Objekt mit folgenden Eigenschaften erhalten:

today: {
    date: 15,
    hours: 1,
    milliseconds: 927,
    minutes: 59,
    months: 4,
    seconds: 43,
    years: 2019
    }

Dies ist sehr nützlich, wenn Sie Daten berechnen müssen.

JC
quelle
0

Aktuelles Datum mit momment.js im Format TT-MM-JJJJ

const currentdate=moment().format("DD-MM-YYYY"); 
console.log(currentdate)
Jojo Joseph
quelle