Единственные форматы, которые Date()
могут анализировать кроссплатформенные:
- 2011-10-10 (форма только для даты)
- 2011-10-10T14: 48: 00 (форма даты и времени)
- 2011-10-10T14: 48: 00.000 + 09: 00 (форма даты и времени с миллисекундами и часовым поясом)
Это из MDN Date()
документация. Все, что может показаться работающим, может работать в вашем браузере, но не другие. (И ваш формат - «21 августа 2020 года» - выглядит так, как будто некоторые браузеры могут попытаться обработать его, возможно, но, конечно, это не кросс-браузерное решение.) Если ваш исходный формат - «21 августа 2020 года», вам, вероятно, потребуется добавьте некоторые логики c, чтобы проанализировать, например, "август" к "08" (название месяца к дополненный номер месяца). И аналогично добавьте меньше чем 10 дней месяца. Остерегайтесь любых решений, которые не следуют одному из трех вышеупомянутых кросс-браузерных форматов для каждой MDN.
Кроме этого, ваш код выглядит так, как будто он работает правильно - хотя вы хотите использовать parseInt()
вместо parseFloat()
при сравнении дат; getTime()
всегда возвращает целое число. parseFloat()
здесь - перебор.
Надеюсь, это поможет!