Jak zwrócić aktualny znacznik czasu za pomocą Moment.js?


157

Ludzie,

Próbuję zrozumieć API MomentJS. Jaki jest właściwy sposób uzyskania aktualnego czasu na komputerze?

var CurrentDate = moment();

vs

var CurrentDate = moment().format();

Próbuję przeanalizować ich dokumenty, ale nie jest jasne, czego użyć.

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


1
Obecny czas jak co? unix timestamp?
śpiączka

Wyobrażałbym sobie RFC3339 lub jakikolwiek inny standardowy identyfikator internetowy do powrotu do klientów itp.
Cmag

2
Wracając do klienta ... hummm ... Domyślam się, że pobierasz to w nodejs i wysyłasz do przeglądarki, chcąc ponownie przekonwertować na instancję momentjs?
śpiączka

1
Przepraszam, czy moja odpowiedź była pomocna?
śpiączka

1
absolutnie tak myślę :) zadałem szybkie pytanie dotyczącevar now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag

Odpowiedzi:


239

Tutaj przypisujesz instancję momentjs do CurrentDate:

var CurrentDate = moment();

Tutaj tylko ciąg, wynik z domyślnego formatowania instancji momentjs:

var CurrentDate = moment().format();

A tutaj liczba sekund, które upłynęły od stycznia ... cóż, uniksowy znacznik czasu:

var CurrentDate = moment().unix();

A tutaj kolejny ciąg znaków jako ISO 8601 ( Jaka jest różnica między formatami daty ISO 8601 i RFC 3339? ):

var CurrentDate = moment().toISOString();

I to też można zrobić:

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

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

czy to byłoby do przyjęcia? var now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag

1
@Cmag, nie rozumiem pytania, ale spójrz tylko na to: jsfiddle.net/coma/bLe31qq0 , jak widać, nawet po sekundzie instancja zachowuje ten sam czas, ponieważ jest zamrożona, to takie samo zachowanie jak new Date ().
śpiączka

więc to to samo zachowanie?
Cmag

1
@Cmag, tak, to jest, pomyśl o momentjs jako obiekcie Date na sterydach i używaj metody toDate tylko wtedy, gdy pracujesz z bibliotekami innych firm, które wymagają surowego obiektu Date. Z momentjs złożone obliczenia czasu są więcej niż łatwe, są przyjemne. Stworzyłem
śpiączka

Również .format('x')opcja generuje ciąg datownika.
Jimmy Knoot

66

moment().unix() otrzymasz uniksowy znacznik czasu

moment().valueOf() otrzymasz pełny znacznik czasu


1
Aby sformatować `var CurrentDateUnixTimestamp = moment (). Unix (); moment.unix (CurrentDateUnixTimestamp) .format ("RRRR-MM-DD HH: mm"); `
Glitch

Jaka jest różnica między unixdatownikiem a fulldatownikiem? Przypuszczam, że fullznacznik czasu wskazuje ~ upływ czasu ~ w milisekundach od 1 stycznia 1970 r., Ale nie mogę określić drugiego.
DongBin Kim

3
.unix()daje uniksowy znacznik czasu w sekundach, .valueOf()daje uniksowy znacznik czasu w milisekundach (AKA, o czym zawsze myślałem jako o uniksowym znaczniku czasu).
Andrew Koster,

33

Nadal nie ma odpowiedzi. Moment.js - może zrobić wszystko, ale takie proste zadanie.

Używam tego:

moment().toDate().getTime()

1
Podoba mi się to bardziej niż +moment(). Więcej znaków, ale łatwiejsze do odczytania i zrozumienia.
joemaller

Zgadzam się z tym @joemaller, idiosynkrazje Javascript mogą cię złapać, jeśli nie zostaną odebrane wcześnie lol
Ian Brindley


11

Jeśli chcesz tylko milisekund od 1 stycznia 1970 r., Możesz użyć

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

Spróbuj tego

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

Spróbuj w ten sposób:

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

Formatuj daty:

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

Odwiedź: https://momentjs.com/, aby uzyskać więcej informacji.



1

Dodam, że w obiekcie można mieć pełne informacje o danych z:

const today = moment().toObject();

Powinieneś otrzymać obiekt o tych właściwościach:

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

Jest to bardzo przydatne, gdy musisz obliczyć daty.


0

Bieżąca data w formacie momment.js w formacie DD-MM-RRRR

const currentdate=moment().format("DD-MM-YYYY"); 
console.log(currentdate)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.