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.