将字符串数组转换为日期,过滤它并转换回字符串

时间:2015-10-20 17:45:44

标签: javascript underscore.js momentjs

这可能是一个新手javascript问题,但我对日期感到疯狂......

我有array个字符串以及两个字符串fromto

var arr = ['2015-01-20','2015-02-14','2015-02-17','2015-03-06']

var from = '2015-02-01';
var to   = '2015-03-01';

我想获得:

['2015-02-14','2015-02-17']

我尝试使用underscore.jsmomentjs,但这失败了:

_.filter(arr, function(x){
    return moment(x,'YYYY-MM-DD').isBetween(moment(from,'YYYY-MM-DD'), moment(to,'YYYY-MM-DD'))
});

给出空结果[] ... 我怎么能解决这个问题以及获得想要结果的更简洁的方法呢?

2 个答案:

答案 0 :(得分:2)

filter数组,然后使用时刻inBetween函数。

arr.filter(function(date) {
    return moment(date).isBetween(from,to);
});

来源:http://momentjs.com/docs/#/query/is-between/

答案 1 :(得分:1)

查看the docs,该方法将接受该格式的字符串(无需创建时刻对象)。

你也有一个拼写错误,它来自往返。 (需要来自和去)

arr.filter(function(x) {
    return moment(x).isBetween(from, to);
});