Ответ 1
На основе документации (и краткого тестирования), instant.js создает обертку вокруг объектов даты. Утверждение:
var now = moment();
создает объект "момента", который в своем сердце имеет новый объект Date, созданный как будто new Date()
, поэтому часы, минуты и секунды будут установлены на текущее время.
Заявление:
var releaseDate = moment("2012-09-25");
создает моментный объект, который в своем сердце имеет новый объект Date, созданный, как если бы он был new Date(2012, 8, 25)
, где часы, минуты и секунды будут установлены на ноль для локального часового пояса.
moment.diff
возвращает значение на основе округленной разницы в мс между двумя датами. Чтобы увидеть полное значение, пройдите true
в качестве третьего параметра:
now.diff(releaseDate, 'days', true)
------------------------------^
Таким образом, это будет зависеть от времени суток выполнения кода и локального часового пояса, если now.diff(releaseDate, 'days')
равен нулю или одному, даже если он выполняется в одной и той же локальной дате.
Если вы хотите сравнить только даты, используйте:
var now = moment().startOf('day');
который установит время в 00:00:00 в локальном часовом поясе.