我试过了,但无法正常工作。
我有这样一个日期数组:['5/15/2017, 2:59:06 PM', '5/15/2017, 2:59:16 PM', ...
]
我想过滤它并获取最近2分钟的日期。
这就是我在做什么:
const twoMinutesAgo = moment().subtract(2, 'minutes')
myArray.filter(stat => moment(stat.date).isAfter(twoMinutesAgo))
Run Code Online (Sandbox Code Playgroud)
但这总是回归true
。
我看到的twoMinutesAgo
是2017年5月15日星期一14:57:09 GMT-0700(PDT)
时间moment(stat.date)
是2018年3月5日星期一14:59:06 GMT-0800(PST)
但是我不确定这是否与它有关。有什么想法我做错了吗?
问题的一部分是,您只查看一天中的小时,但实际上是在比较绝对日期。
您遇到的另一个问题是矩无法正确解析日期字符串。为了解决这个问题,您可以提供一个格式字符串来指示一下如何解析重要位:
const PARSE_FORMAT = 'M/D/YYYY, H:mm:ss A';
const twoMinutesAgo = moment().subtract(2, 'minutes')
myArray.filter(stat => moment(stat.date, PARSE_FORMAT).isAfter(twoMinutesAgo));
Run Code Online (Sandbox Code Playgroud)