Я подозреваю, что проблема здесь:
dateIsBefore(date) {
return moment(date, 'DD/MM/YYYY').isBefore(moment().format('DD/MM/YYYY'));
// --------------------------------------------------^^^^^^^^^^^^^^^^^^^^^
}
У вас уже есть момент (от moment()
), просто используйте его напрямую, не конвертируйте его в строку:
dateIsBefore(date) {
return moment(date, 'DD/MM/YYYY').isBefore(moment());
}
Это определенно имеет больше смысла, и я думаю, что это может решить вашу проблему в том, что если вы передаете строку в isBefore
, Moment должен проанализировать строку.Не зная формата, столкнувшись со строкой в форме ##/##/####
, он почти наверняка будет использовать (несколько странный) американский формат, который равен MM/DD/YYYY
, потому что это то, что делают браузеры (даже за пределами США), когда сталкиваются с таким видом
Проходя через мгновение, вам не нужно об этом беспокоиться.