0

我正在使用过滤器助手来创建与今天日期匹配的新项目数组。我已经确认这两个比较都是长度为 10 的字符串,但在过滤器中进行比较时,它们不会被识别为匹配项。

我知道它与 new Date() 方法有关,因为当我针对日期字符串测试它时,第一个比较有效,而新 Date 方法没有。

if(chosenDate === 'today') {
      // this does not work even though both values are equal
      const scheduled = this.props.scheduled.filter(event => event.scheduled_at.substring(0, 10) === new Date(), 'yyyy-MM-dd');

      // this works
      const scheduled = this.props.scheduled.filter(event => event.scheduled_at.substring(0, 10) === '2019-11-14');

      // this does not work
      const scheduled = this.props.scheduled.filter(event => '2019-11-14' === new Date(), 'yyyy-MM-dd');
      console.log(scheduled)
    }

    console.log(this.props.scheduled[0].scheduled_at.substring(0, 10));
    console.log(dateFnsFormat(new Date(), 'yyyy-MM-dd'));

为什么新日期字符串的比较不相等?

4

1 回答 1

2

好像你的意思

const scheduled = this.props.scheduled.filter(event =>
  event.scheduled_at.substring(0, 10) === dateFnsFormat(new Date(), 'yyyy-MM-dd')
);

但写了

const scheduled = this.props.scheduled.filter(event =>
  event.scheduled_at.substring(0, 10) === new Date()
, 'yyyy-MM-dd'
);
于 2019-11-14T23:44:12.420 回答