¿Cómo devolver la marca de tiempo actual con Moment.js?

157

Amigos

Estoy tratando de entender la API de MomentJS. ¿Cuál es la forma adecuada de obtener la hora actual en la máquina?

var CurrentDate = moment();

vs

var CurrentDate = moment().format();

Intentando analizar sus documentos, y no está claro qué usar.

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

Cmag
fuente
1
¿La hora actual como qué? marca de tiempo unix?
coma
Me imagino el RFC3339 o cualquiera que sea la identificación estándar de Internet para volver a los clientes, etc.
Cmag
2
Volviendo al cliente ... hummm ... Supongo que lo está obteniendo en nodejs y enviándolo al navegador que desea convertirlo nuevamente en una instancia momentjs?
coma
1
Lo siento, ¿has encontrado útil mi respuesta?
coma
1
absolutamente, creo :) hizo una pregunta rápida con respecto avar now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag

Respuestas:

239

Aquí está asignando una instancia de momentjs a CurrentDate:

var CurrentDate = moment();

Aquí solo una cadena, el resultado del formateo predeterminado de una instancia momentjs:

var CurrentDate = moment().format();

Y aquí la cantidad de segundos desde enero de ... bueno, marca de tiempo de Unix:

var CurrentDate = moment().unix();

Y aquí otra cadena como ISO 8601 ( ¿Cuál es la diferencia entre los formatos de fecha ISO 8601 y RFC 3339? ):

var CurrentDate = moment().toISOString();

Y esto también se puede hacer:

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

console.log(a.isSame(b)); // true
coma
fuente
¿Sería esto aceptable? var now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag
1
@Cmag, no entiendo la pregunta, pero solo eche un vistazo a esto: jsfiddle.net/coma/bLe31qq0 , como puede ver allí, incluso después de un segundo, la instancia de momento mantiene el mismo tiempo desde que está congelada, es el mismo comportamiento que la nueva fecha ().
coma
entonces es el mismo comportamiento?
Cmag
1
@Cmag, sí, piense en momentjs como un objeto Date con esteroides y use el método toDate solo cuando trabaje con bibliotecas de terceros que necesiten un objeto Date sin procesar. Con momentjs, los cálculos de tiempo complejos son más que fáciles, son agradables. Creé un selector de fechas
coma
Además, la .format('x')opción generará una cadena de marca de tiempo.
Jimmy Knoot
66

moment().unix() obtendrá una marca de tiempo de Unix

moment().valueOf() obtendrá una marca de tiempo completa

Sabrina Luo
fuente
1
Para formatear `var CurrentDateUnixTimestamp = moment (). Unix (); moment.unix (CurrentDateUnixTimestamp) .format ("AAAA-MM-DD HH: mm"); `
Glitch
¿Qué diferencia hay entre la unixmarca de tiempo y la fullmarca de tiempo? Supongo que la fullmarca de tiempo es lo que indica el ~ flujo de tiempo ~ en milisegundos desde el 1 de enero de 1970, pero no puedo entender el otro.
DongBin Kim
3
.unix()le da la marca de tiempo de Unix en segundos, .valueOf()le da la marca de tiempo de Unix en milisegundos (también conocido como lo que siempre he pensado como una marca de tiempo de Unix).
Andrew Koster
33

Aún sin respuesta. Moment.js: puede hacer cualquier cosa menos una tarea tan simple.

Estoy usando esto:

moment().toDate().getTime()
catamphetamine
fuente
1
Me gusta esto mejor que +moment(). Más personajes, pero más fáciles de leer y entender.
joemaller
Estoy de acuerdo con eso @joemaller, las idiosincrasias de Javascript pueden atraparte si no te recogen temprano jajaja
Ian Brindley
33

Intenta usarlo de esta manera:

let current_time = moment().format("HH:mm")
Craft4
fuente
2
Craft4 es correcto, consulte: momentjs.com/docs/#/displaying/format para saber cómo usarlo Format, pero no está seguro de que la respuesta esté exactamente alineada con la pregunta.
simey.me
11

Si solo desea los milisegundos desde 01-ENE-1970, entonces puede usar

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
fuente
4

Prueba esto

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
fuente
2

Intenta de esta manera:

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

Fechas de 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

Visite: https://momentjs.com/ para más información.

mayo mijangos
fuente
1

Obtener por ubicación:

moment.locale('pt-br')
return moment().format('DD/MM/YYYY HH:mm:ss')
Darlan Dieterich
fuente
1
¿Qué hace .locale ()?
Charith_32
Hola @ Charith_32, en el fondo esto traduce tu formato definido. EX; .format ('LLL')
Darlan Dieterich
1

Me gustaría agregar que puede tener toda la información de datos en un objeto con:

const today = moment().toObject();

Debe obtener un objeto con estas propiedades:

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

Es muy útil cuando tienes que calcular fechas.

JC
fuente
0

Fecha actual usando momment.js en formato DD-MM-AAAA

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