使用 Moment.js 格式化日期和减去日期

我希望使用 Moment.js 以 DD-MM-YYYY格式保存昨天的日期。因此,如果今天是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')

但我不明白。

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

试试这个:

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

这会给你 14-04-2015-今天是2015年4月15日

或者,如果您的 Momentjs 版本小于2.8.0,您可以使用:

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

而不是这样:

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

我认为你已经在最后一次尝试中得到了它,你只需要抓住字符串. . 在 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"

你有很多奇怪的事情发生。第一个已经在你的文章中被编辑了,但它必须与方法被调用的顺序有关。

返回一个字符串。字符串没有 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 = moment().subtract(1, 'days').startOf('day')

在 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
``






var date = new Date();


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

现在,你可以设置这个日期的格式或者你可以把这个日期和另一个日期进行比较。

toDate()函数是关键。