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

qf9go6mv  于 2023-03-16  发布在  Java
关注(0)|答案(7)|浏览(213)

我希望使用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')

但我不明白...

pdsfdshx

pdsfdshx1#

你有很多奇怪的事情发生。第一个已经在你的帖子中编辑过了,但它与方法被调用的顺序有关。
.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设置为您在startdate上所做的更改,因为moment是破坏性的。

vkc1a9a2

vkc1a9a22#

var date = new Date();

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

现在,你可以格式化你想看到的日期,或者你可以比较这个日期与另一个等。
toDate()功能是重点。

f1tvaqid

f1tvaqid3#

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

kx5bkwkv4#

试试这个:

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');
mznpcxlj

mznpcxlj5#

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

mctunoxg6#

单位:Angular moment="^1.3.0"

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

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

iqjalb3h7#

我想你已经在最后一次尝试中得到了它,你只需要在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"

相关问题