【问题标题】:How to subtract one month using moment.js? [duplicate]如何使用 moment.js 减去一个月? [复制]
【发布时间】:2017-05-21 04:53:37
【问题描述】:

我有一个使用 moment().format('MMM YYYY') 生成的当前月份。我需要使用当前月份来获取最近六个月的数据。

如何使用 moment.js 减去一个月?

【问题讨论】:

标签: javascript momentjs


【解决方案1】:

对于moment.js中的减法:

moment().subtract(1, 'months').format('MMM YYYY');

文档:

http://momentjs.com/docs/#/manipulating/subtract/

在 2.8.0 版本之前,moment#subtract(String, Number) 语法是 也支持。它已被弃用,取而代之的是 moment#subtract(Number, String).

  moment().subtract('seconds', 1); // Deprecated in 2.8.0
  moment().subtract(1, 'seconds');

从 2.12.0 开始,当为天和月传递十进制值时,它们 被四舍五入到最接近的整数。周、季度和年是 转换为天或月,然后四舍五入到最接近的整数。

  moment().subtract(1.5, 'months') == moment().subtract(2, 'months')
  moment().subtract(.7, 'years') == moment().subtract(8, 'months') //.7*12 = 8.4, rounded to 8

【讨论】:

  • 但这不起作用moment("2017-12-01").subtract(1, 'months');
  • @shinzou 您使用的是哪个版本的 MomentJ?我试过了,没有遇到问题:jsfiddle.net/kzo3e3bs/4
  • 这行不通moment("2017-12-01").subtract(1, 'months'); 但这行:moment("2017-12-01").subtract(1, 'months').format('MMMM DD h:mm A'); 为什么需要这种格式?
  • 没有任何 format() 也能正常工作:jsfiddle.net/kzo3e3bs/7
  • 这真的很奇怪:i.imgur.com/YJYGdf2.png 如果你打印两个变量:i.imgur.com/c0xP3Dj.png 它们是一样的......这怎么可能?
猜你喜欢
  • 2021-08-11
  • 1970-01-01
  • 2011-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多