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/


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

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


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

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

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>


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.



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.


0

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

const currentdate=moment().format("DD-MM-YYYY"); 
console.log(currentdate)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.