使用 Moment.js 格式化日期和减去天数
Format date and Subtract days using 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')
但我不明白...
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
- 今天是 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');
我想你在最后一次尝试中已经成功了,你只需要在 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"
你有很多奇怪的事情发生。第一个已在您的 post 中编辑,但它与调用方法的顺序有关。
.format
returns 一个字符串。字符串没有 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()
功能是重点。
我想要一个变量以 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')
但我不明白...
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
- 今天是 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');
我想你在最后一次尝试中已经成功了,你只需要在 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"
你有很多奇怪的事情发生。第一个已在您的 post 中编辑,但它与调用方法的顺序有关。
.format
returns 一个字符串。字符串没有 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()
功能是重点。