Подтвердить что ты не робот

Дата форматирования и вычитание дней с использованием Moment.js

Я хотел бы, чтобы переменная содержала вчерашнюю дату в формате 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')

Но я не понимаю...

4b9b3361

Ответ 1

У вас много странностей. Первое редактировалось в вашем сообщении, но оно связано с порядком вызова методов.

.format возвращает строку. Строка не имеет метода subtract.

Вторая проблема заключается в том, что вы вычитаете день, но фактически не сохраняете это как переменную.

Тогда ваш код должен выглядеть так:

var startdate = moment();
startdate = startdate.subtract(1, "days");
startdate = startdate.format("DD-MM-YYYY");

Однако вы можете связать это вместе; это будет выглядеть так:

var startdate = moment().subtract(1, "days").format("DD-MM-YYYY");

Разница в том, что мы устанавливаем startdate для изменений, которые вы делаете при старте, потому что момент разрушительный.

Ответ 2

startdate = moment().subtract(1, 'days').format('DD-MM-YYYY');

Ответ 3

Попробуйте следующее:

var duration = moment.duration({'days' : 1});
moment().subtract(duration).format('DD-MM-YYYY');

Это даст вам 14-04-2015 - сегодня 15-04-2015

Альтернативно, если ваша версия momentjs меньше 2.8.0, вы можете использовать:

startdate = moment().subtract('days', 1).format('DD-MM-YYYY');

Вместо этого:

startdate = moment().subtract(1, 'days').format('DD-MM-YYYY');

Ответ 4

Я думаю, что у вас есть это в последней попытке, вам просто нужно захватить строку.. в консоли Chrome.

startdate = moment();
startdate.subtract(1, 'd');
startdate.format('DD-MM-YYYY');
"14-04-2015"

startdate = moment();
startdate.subtract(1, 'd');
myString = startdate.format('DD-MM-YYYY');
"14-04-2015"
myString
"14-04-2015"

Ответ 5

startdate = moment().subtract(1, 'days').startOf('day')

Ответ 6

В момент angularjs = "^ 1.3.0"

moment('15-01-1979', 'DD-MM-YYYY').subtract(1,'days').format(); //14-01-1979
or
moment('15-01-1979', 'DD-MM-YYYY').add(1,'days').format(); //16-01-1979
''



Ответ 7

var date = new Date();

var targetDate = moment(date).subtract(1, 'day').toDate(); // date object

Теперь вы можете отформатировать, как вы хотите видеть эту дату, или вы можете сравнить эту дату с другой и т.д.

Функция toDate() - это точка.