2016-05-09 3 views
1

Я использую moment.js, чтобы найти разницу во времени между двумя интервалами.Moment.js не принимает переменные как параметры

Вот мой JS код:

console.log("from_url "+from_url); //prints: 2016-05-03T10:00:00 
var a = moment(from_url); 
console.log("a "+a); //prints : 1462294800000 isntead of 2016-05-03T10:00:00 

Таким образом, я не могу получить точную разницу. Может ли кто-нибудь предложить, где я буду не так? Спасибо.

ответ

1

Когда вы конвертируете объект-объект в примитив с использованием +, Object.prototype.valueOf() был переопределен для создания отметки времени unix в миллисекундах - или то, что стандарт ES2015 называется «значением времени». Таким образом, вы видите, что значение THAT распечатывается.

Если вы хотите дату, просто используйте .format():

var a = moment("2016-05-03T10:00:00"); "a " + a.format() 
"a 2016-05-03T10:00:00-05:00" 

Обратите внимание, что формат имеет множество параметров: http://momentjs.com/docs/#/displaying/format/

Насколько найти разницу между двумя датами и временем идет - вы должны строить два момента и с использованием момента .diff() Функция сравнения: http://momentjs.com/docs/#/displaying/difference/

Например, чтобы получить разницу между часами между вашей датой и сейчас:

moment("2016-05-03T10:00:00").diff(moment(), 'hours') 
-155 
Смежные вопросы