Дата форматирования и вычитание дней с использованием 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')
Но я не понимаю...
Ответы
Ответ 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() - это точка.