2014-09-08 3 views
46

Люди, Я пытаюсь понять API MomentJS. Каков подходящий способ получить текущее время на машине?Moment.JS возвращает текущую временную метку

var CurrentDate = moment(); 

против

var CurrentDate = moment().format(); 

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

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

+1

Текущее время как? unix timestamp? – coma

+0

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

+2

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

ответ

79

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

var CurrentDate = moment(); 

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

var CurrentDate = moment().format(); 

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

var CurrentDate = moment().unix(); 

А вот еще одна строка, как ISO 8601 (What's the difference between ISO 8601 and RFC 3339 Date Formats?):

var CurrentDate = moment().toISOString(); 

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

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

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

это приемлемо? 'var now = new Date(). getTime(); \t \t \t userObject.registered = moment (now) .toDate(); ' – Cmag

+1

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

+0

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

20

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

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

moment().toDate().getTime() 
+1

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

+0

Я согласен с тем, что @joemaller, особенности Javascript могут вас поймать, если не подобрать ранний lol –

13

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

var current_time = new moment().format("HH:mm"); 
+1

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

3

Если вы просто хотите миллисекунды начиная с 01-JAN-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(); 
21

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

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

Смежные вопросы