好的我有一个数组如下:
[0 … 99]
0: Object
date: Mon Jun 17 2013 00:00:00 GMT+0200 (CEST)
1: Object
date: Tue Jun 18 2013 00:00:00 GMT+0200 (CEST)
2: Object
date: Wed Jun 19 2013 00:00:00 GMT+0200 (CEST)
依此类推,对于整年3年的每个月,我都试图从我的数组中每月只返回一个月的名称和年份我正在使用下面的Javascript将对象文字转换为数组:
scope.monthpicker = function(alldatesdumparray){
var alldatesdump = booking.getalldates();
var alldatesdumparray = $.map(booking.getalldates(), function(value, index) {
return [value];
});
console.log(alldatesdumparray);
return alldatesdumparray;
};
以及使用ng-repeat输出数组的以下angularJS:
<select ng-click="monthpicker()" >
<option class="animate-repeat" ng-repeat="returnpicker in monthpicker(alldatesdumparray)" value="{{returnpicker.date | date:'yyyy-MMM' }}">{{returnpicker.date | date:'yyyy-MMM' }}</option>
</select>
哪个工作正常,它只是在我的阵列中的所有日期超过一个月的每天一个选项,我想过滤它只返回一个月?
答案 0 :(得分:1)
不确定这是否是您问题的可行解决方案。 您可以使用moment.js和underscore.js的组合吗?
var days = [...]// your array of dates.
var filtered = _.uniq(days, function(item) {
return moment(item).format("YYYY MM");
});
console.log(filtered); => array containing one day per month.
这将返回每个月的第一天。
答案 1 :(得分:1)
您可以使用new Date(/* ..*/)
<强> JS 强>
$scope.pickers = [
{date: new Date('Tue Feb 18 2013 00:00:00 GMT+0200 (CEST)')},
{date: new Date('Wed Jan 19 2013 00:00:00 GMT+0200 (CEST)')},
{date: new Date('Mon Jun 17 2013 00:00:00 GMT+0200 (CEST)')}
];
HTML
<select >
<option
ng-repeat="returnpicker in pickers"
>{{returnpicker.date | date:'MMM' }}</option>
</select>
演示 Plunker