Я хочу проверить, составляет ли текущее время utc менее 1 дня с даты события. И дату события, которую я передаю, я вычитаю на один день. По сути, я хочу увидеть, не превышает ли текущее время utc менее одного дня от даты события, но этот запрос возвращается ложным, а не истинным !!
бывший. проходя через время utc и менее 1 дня, затем проверьте, не прошло ли менее одного дня от текущего времени utc
if (moment().utc().isSameOrAfter(moment("4/13/2018 7:30:00 PM").add(-1, 'days').utc())) {
// returns false but should be true because it's less then one day from 4/13/2018 7:30PM
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Проблема в том, как вы анализируете свой ввод. Поскольку "4/13/2018 7:30:00 PM" не входит ни в ISO 8601, ни в известный формат RFC 2822, вы должны использовать moment(String, String) вместо moment(String):
When creating a moment from a string, we first check if the string matches known ISO 8601formats, we then check if the string matches the RFC 2822 Date time format before dropping to the fall back of new Date(string) if a known format is not found.
For consistent results parsing anything other than ISO 8601 strings, you should use String + Format.
В вашем случае вы можете использовать:
moment("4/13/2018 7:30:00 PM", "M/D/YYYY h:mm:ss A")
Вместо
moment("4/13/2018 7:30:00 PM")