Ответ 1
Вам вообще не нужно использовать .format()
для этого.
Во-первых, метки времени должны быть числами, а не строками (например, var pastUnixTime = 1348812970;
), а во-вторых, вы можете сравнить их напрямую:
> pastUnixTime = 1348812970;
> pastUnixTime < moment().unix()
true
> pastUnixTime > moment().unix()
false
Теперь причина, по которой ваш код терпит неудачу, заключается в том, что когда вы сравниваете строки DD MM YYYY
, их сравнивают лексикографически... И первые дни! Поэтому строка "01 01 2000"
всегда будет "меньше" "31 12 1900"
. Если вы хотите сравнить строки, вы можете использовать формат YYYY MM DD
- таким образом, "2000 01 01"
будет правильно "больше" "1900 12 31"
. Но нет причин для этого - отметки времени намного более прямолинейны.
Наконец, примечание: вам действительно не нужно использовать .unix()
- экземпляры moment()
будут разумно сравнивать:
> past = moment().subtract("days", 1)
> now = moment()
> past < now
true
> past > now
false