Я хотел бы, чтобы переменная DD-MM-YYYY
содержала вчерашнюю дату в формате с использованием Moment.js. Итак, если сегодня 15-04-2015, я хотел бы вычесть день и получить 14-4-2015.
Я пробовал несколько таких комбинаций:
startdate = moment().format('DD-MM-YYYY');
startdate.subtract(1, 'd');
и это:
startdate = moment().format('DD-MM-YYYY').subtract(1, 'd');
а также это:
startdate = moment();
startdate.subtract(1, 'd');
startdate.format('DD-MM-YYYY')
Но я не понимаю ...
javascript
date
momentjs
beaumondo
источник
источник
format()
это функция, которая делает его строкой. Вы должны сделать это в последнюю очередь.Ответы:
У вас происходит множество странностей. Первый был отредактирован в вашем сообщении, но он был связан с порядком, в котором вызывались методы.
.format
возвращает строку. Строка не имеетsubtract
метода.Вторая проблема заключается в том, что вы вычитаете день, но не сохраняете его как переменную.
Тогда ваш код должен выглядеть так:
Однако вы можете связать это вместе; это будет выглядеть так:
Разница в том, что мы устанавливаем startdate для изменений, которые вы делаете в startdate, потому что момент разрушителен.
источник
subtract
на самом деле деструктивен. «Изменяет исходный момент, вычитая время». Смотрите здесь: momentjs.com/docs/#/manipulating/subtractисточник
Попробуй это:
Это даст вам
14-04-2015
- сегодня 15-04-2015В качестве альтернативы, если ваша версия momentjs меньше 2.8.0, вы можете использовать:
Вместо этого:
источник
startdate = moment().subtract(1, 'days').startOf('day')
источник
Теперь вы можете отформатировать, как вы хотите видеть эту дату, или вы можете сравнить эту дату с другой и т. Д.
Функция toDate () - вот в чем дело.
источник
Я думаю, вы получили это в последней попытке, вам просто нужно схватить строку .. в консоли Chrome ..
источник
В угловом моменте = "^ 1.3.0"
источник