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/

Cmag
la source
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
coma
la source
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

Sabrina Luo
la source
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()
catamphétamine
la source
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
33

Essayez de l'utiliser de cette façon:

let current_time = moment().format("HH:mm")
Artisanat4
la source
2
Craft4 est correct, veuillez vous référer à: momentjs.com/docs/#/displaying/format pour savoir comment l'utiliser Format, mais pas sûr que la réponse soit exactement alignée avec la question.
simey.me
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();
hgoebl
la source
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>

Durgpal Singh
la source
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.

peut mijangos
la source
1

Obtenir par emplacement:

moment.locale('pt-br')
return moment().format('DD/MM/YYYY HH:mm:ss')
Darlan Dieterich
la source
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.

JC
la source
0

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

const currentdate=moment().format("DD-MM-YYYY"); 
console.log(currentdate)
Jojo Joseph
la source