Javascript 使用MomentJS从等值线减去30天

Javascript 使用MomentJS从等值线减去30天,javascript,date,momentjs,Javascript,Date,Momentjs,我正在尝试使用MomentJs获取给定的ISOdate,从该日期减去30天,然后使用MomentJs isAfter方法检查该日期是否在最后30天内。我认为我写的逻辑是正确的,但分包法并没有从ISODate中删除30天,我给出的结果如下所示: cosnt deceasedDate = '2021-12-23T23:00:00.000Z'; const thirtyDaysAgo = moment(deceasedDate) .subtract(30, 'days') .startOf('

我正在尝试使用MomentJs获取给定的ISOdate,从该日期减去30天,然后使用MomentJs isAfter方法检查该日期是否在最后30天内。我认为我写的逻辑是正确的,但分包法并没有从ISODate中删除30天,我给出的结果如下所示:

cosnt deceasedDate = '2021-12-23T23:00:00.000Z';
const thirtyDaysAgo = moment(deceasedDate)
  .subtract(30, 'days')
  .startOf('day');


try {
  if (!moment(deceasedDate).isAfter(thirtyDaysAgo)) return;
如果我在DecesedDate分配后设置断点,则该断点未被更改。它仍然具有值“2021-12-23T23:00:00.000Z”

有人知道为什么会这样吗?我假设我能够通过一个ISODate到Moment,所以日期被Moment包装起来。
谢谢

我认为它正在正常工作。 看看代码段的输出,它确实从给定的日期减去了30天。如果使用isBefore或isAfter进行检查,则返回true或false

const deceseddate='2021-12-23T23:00:00.000Z';
常数三十天=力矩(DecesedDate)
.减去(30天)
.startOf(“日”);
log(thirtyDaysAgo.toISOString());
console.log(!moment(decesedDate).isBefore(thirtysago));
console.log(!moment(decesedDate).isAfter(thirtysago))

“如果我在分配DecesedDate后的断点没有被更改”-为什么存储在
常量
变量中的不可变字符串会发生更改?在这里输入
cosnt DecesedDate
我想你的意思是
常量三十天=矩()
(假设你的意思是从现在开始你的代码正确工作,那么moment不会编辑DecesedDate
(这也是一个常量,因此编辑时不可能不给你一个错误),如果你记录
ThirtySago.format()
它记录了30天前的正确日期
2021-11-24T00:00+01:00
。我的建议是使用
IsBeween()
而不是
isAfter()
如果要在其他两个日期之间比较第三十个日期