Come restituire il timestamp corrente con Moment.js?


157

gente,

Sto cercando di capire l'API MomentJS. Qual è il modo appropriato per ottenere l'ora corrente sulla macchina?

var CurrentDate = moment();

vs

var CurrentDate = moment().format();

Cercando di analizzare i loro documenti, e non è chiaro cosa usare.

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


1
L'ora corrente come cosa? unix timestamp?
coma

Immagino che RFC3339 o qualunque sia l'id standard di Internet per tornare ai clienti, ecc.
Cmag

2
Tornando al client ... hummm ... Immagino che tu lo stia ottenendo in nodejs e lo stia inviando al browser per convertirlo di nuovo in un'istanza momentjs?
coma

1
Mi dispiace, hai trovato utile la mia risposta?
coma

1
assolutamente, penso :) ho fatto una domanda veloce riguardo avar now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag

Risposte:


239

Qui stai assegnando un'istanza di momentjs a CurrentDate:

var CurrentDate = moment();

Ecco solo una stringa, il risultato della formattazione predefinita di un'istanza momentjs:

var CurrentDate = moment().format();

E qui il numero di secondi da gennaio di ... beh, unix timestamp:

var CurrentDate = moment().unix();

E qui un'altra stringa come ISO 8601 ( Qual è la differenza tra ISO 8601 e RFC 3339 Formati di data? ):

var CurrentDate = moment().toISOString();

E questo può essere fatto anche:

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

console.log(a.isSame(b)); // true

sarebbe accettabile? var now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag

1
@Cmag, non capisco la domanda, ma dai un'occhiata a questo: jsfiddle.net/coma/bLe31qq0 , come puoi vedere lì, anche dopo un secondo il momento in cui l'istanza rimane nello stesso momento in cui è congelata, è il stesso comportamento di new Date ().
coma

quindi è lo stesso comportamento?
Cmag

1
@Cmag, sì, pensa a momentjs come un oggetto Date sugli steroidi e usa il metodo toDate solo quando lavori con librerie di terze parti che necessitano di un oggetto Date grezzo. Con momentjs, i calcoli di tempo complessi sono più che facili, sono piacevoli. Ho creato un datepicker con esso: github.com/coma/MomentPicker/blob/master/src/MomentPicker.js
coma

Inoltre, l' .format('x')opzione genererà una stringa timestamp.
Jimmy Knoot,

66

moment().unix() otterrai un timestamp unix

moment().valueOf() otterrai un timestamp completo


1
Per formattare `var CurrentDateUnixTimestamp = moment (). Unix (); moment.unix (CurrentDateUnixTimestamp) .format ("AAAA-MM-GG HH: mm"); `
Glitch,

Qual è la differenza tra data unixe ora full? Suppongo che il fulltimestamp sia ciò che indica il ~ flusso di tempo ~ in millisecondi dal 1 gennaio 1970, ma non riesco a capire l'altro.
DongBin Kim,

3
.unix()ti dà il timestamp Unix in pochi secondi, .valueOf()ti dà il timestamp Unix in millisecondi (AKA quello che ho sempre pensato come un timestamp Unix).
Andrew Koster,

33

Ancora nessuna risposta. Moment.js - Può fare qualsiasi cosa tranne un'attività così semplice.

Sto usando questo:

moment().toDate().getTime()

1
Mi piace di più +moment(). Più personaggi, ma più facili da leggere e comprendere.
Joemaller,

Sono d'accordo con quel @joemaller, le idiosincrasie di Javascript possono prenderti alla sprovvista se non colto in anticipo lol
Ian Brindley,


11

Se vuoi solo i millisecondi dal 01-GEN-1970, allora puoi usare

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

Prova questo

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

Prova in questo modo:

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

Date formato:

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

Visita: https://momentjs.com/ per maggiori informazioni.



1

Vorrei aggiungere che è possibile avere tutte le informazioni sui dati in un oggetto con:

const today = moment().toObject();

Dovresti ottenere un oggetto con queste proprietà:

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

È molto utile quando devi calcolare le date.


0

Data corrente utilizzando momment.js nel formato GG-MM-AAAA

const currentdate=moment().format("DD-MM-YYYY"); 
console.log(currentdate)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.