¿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/


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

¿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


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()

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


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();

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>


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.


1

Obtener por ubicación:

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

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.


0

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

const currentdate=moment().format("DD-MM-YYYY"); 
console.log(currentdate)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.