Как вернуть текущую метку времени с Moment.js?


158

Folks,

Я пытаюсь понять API MomentJS. Как правильно получить текущее время на машине?

var CurrentDate = moment();

против

var CurrentDate = moment().format();

Попытка разобрать их документы, и не очевидно, что использовать.

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


1
Текущее время как что? метка времени Unix?
кома

Я мог бы представить RFC3339 или любой другой стандартный интернет-идентификатор для возврата клиентам и т. Д.
Cmag

2
Возвращаясь к клиенту ... хммм ... Я думаю, что вы получаете его в nodejs и отправляете его в браузер, желая преобразовать его снова в экземпляр моментального времени?
кома

1
Извините, вы нашли мой ответ полезным?
Кома

1
абсолютно, я думаю :) задал быстрый вопрос относительноvar now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag

Ответы:


241

Здесь вы назначаете экземпляр currentjs для CurrentDate:

var CurrentDate = moment();

Вот только строка, результат форматирования по умолчанию для экземпляра momentjs:

var CurrentDate = moment().format();

А вот количество секунд с января ... ну, отметка времени unix:

var CurrentDate = moment().unix();

А вот еще одна строка , такая как ISO 8601 (В чем разница между форматами даты ISO 8601 и RFC 3339? ):

var CurrentDate = moment().toISOString();

И это тоже можно сделать:

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

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

это будет приемлемо? var now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag

1
@Cmag, я не понимаю вопроса, но просто взгляните на это: jsfiddle.net/coma/bLe31qq0 , как вы можете видеть там, даже через секунду моментный экземпляр сохраняет то же время, так как он заморожен, это такое же поведение, как у новой даты ().
Кома

так это же поведение?
Cmag

1
@Cmag, да, это так, думайте о моментах как об объекте Date на стероидах и используйте метод toDate только тогда, когда вы работаете с сторонними библиотеками, нуждающимися в необработанном объекте Date. С моментами сложные вычисления времени более чем просты, приятны. Я создал для него средство выбора даты: github.com/coma/MomentPicker/blob/master/src/MomentPicker.js
кома

Также .format('x')опция генерирует строку метки времени.
Джимми Ноот

66

moment().unix() вы получите метку времени Unix

moment().valueOf() вы получите полную метку времени


1
Чтобы отформатировать `var CurrentDateUnixTimestamp = moment (). Unix (); moment.unix (CurrentDateUnixTimestamp) .format ( "ГГГГ-ММ-ДД ЧЧ: мм"); `
Глитч

В чем разница между unixотметкой времени и fullотметкой времени? Я полагаю, что fullвременная метка - это то, что показывает ~ временной поток в миллисекундах с 1 января 1970 года, но я не могу понять другую.
Донгбин Ким

3
.unix()дает метку времени Unix в секундах, .valueOf()метку времени Unix в миллисекундах (AKA, что я всегда считал меткой времени Unix).
Эндрю Костер

33

Тем не менее, нет ответа. Moment.js - может сделать что-нибудь, кроме такой простой задачи.

Я использую это:

moment().toDate().getTime()

1
Мне нравится это лучше, чем +moment(). Больше символов, но легче читать и понимать.
Joemaller

Я бы согласился с этим @joemaller, идиосинкразии Javascript могут вас поймать, если не подхватить рано, лол
Ян Бриндли,

33

Попробуйте использовать это так:

let current_time = moment().format("HH:mm")

2
Craft4 верен, пожалуйста, обратитесь к: momentjs.com/docs/#/displaying/format, чтобы узнать, как его использовать Format, но не уверен, что ответ точно совпадает с вопросом.
simey.me

11

Если вы просто хотите миллисекунды с 01 января 1970 года, вы можете использовать

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


2

Попробуйте так:

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

Формат даты:

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

Посетите: https://momentjs.com/ для получения дополнительной информации.



1

Я хотел бы добавить, что вы можете иметь всю информацию о данных в объекте с:

const today = moment().toObject();

Вы должны получить объект со следующими свойствами:

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

Это очень полезно, когда вам нужно рассчитать даты.


0

Текущая дата с использованием momment.js в формате DD-MM-YYYY

const currentdate=moment().format("DD-MM-YYYY"); 
console.log(currentdate)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.