Comment retourner l'horodatage actuel avec Moment.js?


158

Gens,

J'essaye de comprendre l'API MomentJS. Quelle est la manière appropriée d'obtenir l'heure actuelle sur la machine?

var CurrentDate = moment();

contre

var CurrentDate = moment().format();

Essayer d'analyser leurs documents, et on ne sait pas quoi utiliser.

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


1
L'heure actuelle comme quoi? horodatage unix?
coma

J'imagine la RFC3339 ou quel que soit l'identifiant standard Internet pour le retour aux clients, etc.
Cmag

2
Revenons au client ... hummm ... Je suppose que vous l'obtenez dans nodejs et que vous l'envoyez au navigateur pour le convertir à nouveau en une instance momentjs?
coma

1
Pardon, avez-vous trouvé ma réponse utile?
coma

1
absolument, je pense :) a posé une question rapide concernantvar now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag

Réponses:


240

Ici, vous affectez une instance de momentjs à CurrentDate:

var CurrentDate = moment();

Voici juste une chaîne, le résultat du formatage par défaut d'une instance momentjs:

var CurrentDate = moment().format();

Et voici le nombre de secondes depuis janvier de ... eh bien, horodatage unix:

var CurrentDate = moment().unix();

Et voici une autre chaîne comme ISO 8601 ( Quelle est la différence entre les formats de date ISO 8601 et RFC 3339? ):

var CurrentDate = moment().toISOString();

Et cela peut être fait aussi:

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

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

serait-ce acceptable? var now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag

1
@Cmag, je ne comprends pas la question, mais jetez un œil à ceci: jsfiddle.net/coma/bLe31qq0 , comme vous pouvez le voir là-bas, même après une seconde, l'instance du moment garde le même temps depuis qu'elle est gelée, c'est le même comportement que new Date ().
coma

donc c'est le même comportement?
Cmag

1
@Cmag, oui, pensez à momentjs comme un objet Date sous stéroïdes et utilisez la méthode toDate uniquement lorsque vous travaillez avec des bibliothèques tierces nécessitant un objet Date brut. Avec momentjs, les calculs de temps complexes sont plus que simples, agréables. J'ai créé un datepicker avec: github.com/coma/MomentPicker/blob/master/src/MomentPicker.js
coma

L' .format('x')option générera également une chaîne d'horodatage.
Jimmy Knoot

66

moment().unix() vous obtiendrez un horodatage unix

moment().valueOf() vous obtiendrez un horodatage complet


1
Pour formater `var CurrentDateUnixTimestamp = moment (). Unix (); moment.unix (CurrentDateUnixTimestamp) .format ("AAAA-MM-JJ HH: mm"); `
Glitch le

Quelle est la différence entre l' unixhorodatage et l' fullhorodatage? Je suppose que l' fullhorodatage est ce qui indique le ~ flux temporel ~ en millisecondes depuis le 1er janvier 1970, mais je ne peux pas comprendre l'autre.
DongBin Kim

3
.unix()vous donne l'horodatage Unix en secondes, .valueOf()vous donne l'horodatage Unix en millisecondes (AKA ce que j'ai toujours considéré comme un horodatage Unix).
Andrew Koster

33

Toujours pas de réponse. Moment.js - Peut faire tout sauf une tâche aussi simple.

J'utilise ceci:

moment().toDate().getTime()

1
J'aime mieux ça +moment(). Plus de caractères, mais plus faciles à lire et à comprendre.
joemaller

Je suis d'accord avec ça @joemaller, les idiosyncrasies de Javascript peuvent vous surprendre si elles ne sont pas ramassées tôt lol
Ian Brindley


11

Si vous voulez juste les millisecondes depuis le 01-JAN-1970, vous pouvez utiliser

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

Essaye ça

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

Essayez de cette façon:

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

Dates de format:

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

Visitez: https://momentjs.com/ pour plus d'informations.


1

Obtenir par emplacement:

moment.locale('pt-br')
return moment().format('DD/MM/YYYY HH:mm:ss')

1
Que fait .locale ()?
Charith_32

Salut @ Charith_32, cela traduit essentiellement votre format défini. EX; .format ('LLL')
Darlan Dieterich

1

Je voudrais ajouter que vous pouvez avoir toutes les informations de données dans un objet avec:

const today = moment().toObject();

Vous devriez obtenir un objet avec ces propriétés:

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

C'est très utile lorsque vous devez calculer des dates.


0

Date actuelle en utilisant momment.js au format JJ-MM-AAAA

const currentdate=moment().format("DD-MM-YYYY"); 
console.log(currentdate)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.