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

bea*_*ndo 96 javascript date momentjs

我希望变量能够DD-MM-YYYY使用Moment.js 以格式保存昨天的日期.因此,如果今天是2015年4月15日,我想减去一天,并有14-4-2015.

我试过这样的几个组合:

startdate = moment().format('DD-MM-YYYY');
startdate.subtract(1, 'd');
Run Code Online (Sandbox Code Playgroud)

还有这个:

startdate = moment().format('DD-MM-YYYY').subtract(1, 'd');
Run Code Online (Sandbox Code Playgroud)

还有这个:

startdate = moment();
startdate.subtract(1, 'd');
startdate.format('DD-MM-YYYY')
Run Code Online (Sandbox Code Playgroud)

但我没有得到它......

ndu*_*ger 167

你有多个奇怪的事情发生.第一个已在您的帖子中进行了编辑,但它与调用方法的顺序有关.

.format返回一个字符串.String没有subtract方法.

第二个问题是你正在减去这一天,但实际上并没有将其保存为变量.

那么,您的代码应如下所示:

var startdate = moment();
startdate = startdate.subtract(1, "days");
startdate = startdate.format("DD-MM-YYYY");
Run Code Online (Sandbox Code Playgroud)

但是,你可以把它连在一起; 这看起来像:

var startdate = moment().subtract(1, "days").format("DD-MM-YYYY");
Run Code Online (Sandbox Code Playgroud)

不同之处在于我们将startdate设置为您在startdate上所做的更改,因为时刻具有破坏性.

  • 事实上,moment.js"减法"具有破坏性."通过减去时间来改变原始时刻".见这里:http://momentjs.com/docs/#/manipulating/subtract/ (7认同)

小智 9

startdate = moment().subtract(1, 'days').format('DD-MM-YYYY');
Run Code Online (Sandbox Code Playgroud)


can*_*stu 9

var date = new Date();

var targetDate = moment(date).subtract(1, 'day').toDate(); // date object
Run Code Online (Sandbox Code Playgroud)

现在,您可以格式化您希望如何查看此日期,或者您可以将此日期与另一个日期进行比较等等。

toDate() 功能是重点。


小智 6

在 AngularJS 中moment="^1.3.0"

moment('15-01-1979', 'DD-MM-YYYY').subtract(1,'days').format(); // 14-01-1979
Run Code Online (Sandbox Code Playgroud)

或者

moment('15-01-1979', 'DD-MM-YYYY').add(1,'days').format(); // 16-01-1979
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试这个:

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

这会给您14-04-2015- 今天是2015年5月4日

另外,如果您的momentjs版本低于2.8.0,则可以使用:

startdate = moment().subtract('days', 1).format('DD-MM-YYYY');
Run Code Online (Sandbox Code Playgroud)

代替这个:

startdate = moment().subtract(1, 'days').format('DD-MM-YYYY');
Run Code Online (Sandbox Code Playgroud)