Eu gostaria que uma variável contivesse a data de ontem no formato DD-MM-YYYY
contivesse usando Moment.js. Então, se hoje é 15-04-2015, gostaria de subtrair um dia e ter 14-4-2015.
Tentei algumas combinações como esta:
startdate = moment().format('DD-MM-YYYY');
startdate.subtract(1, 'd');
e isto:
startdate = moment().format('DD-MM-YYYY').subtract(1, 'd');
e também este:
startdate = moment();
startdate.subtract(1, 'd');
startdate.format('DD-MM-YYYY')
Mas não estou entendendo ...
javascript
date
momentjs
beaumondo
fonte
fonte
format()
é a função que o torna uma string. Você deve fazer isso por último.Respostas:
Você tem várias coisas estranhas acontecendo. O primeiro foi editado na sua postagem, mas tinha a ver com a ordem em que os métodos estavam sendo chamados.
.format
retorna uma string. String não tem umsubtract
método.O segundo problema é que você está subtraindo o dia, mas não o salvando como uma variável.
Seu código, então, deve ser semelhante a:
No entanto, você pode encadear isso juntos; isso seria parecido com:
A diferença é que estamos definindo startdate para as alterações que você está fazendo na startdate, porque o momento é destrutivo.
fonte
subtract
é, de fato, destrutivo. "Muda o momento original subtraindo o tempo". Veja aqui: momentjs.com/docs/#/manipulating/subtractfonte
Experimente isto:
Isso lhe dará
14-04-2015
- hoje é 15-04-2015Como alternativa, se sua versão do momentjs for inferior a 2.8.0, você pode usar:
Em vez disso:
fonte
startdate = moment().subtract(1, 'days').startOf('day')
fonte
Acho que você conseguiu nessa última tentativa, você só precisa pegar a corda .. no console do Chrome ..
fonte
No momento angularjs = "^ 1.3.0"
fonte
Agora, você pode formatar como deseja ver esta data ou pode comparar esta data com outra etc.
A função toDate () é o ponto.
fonte