这是我的解决方案。请记住,从纪元开始,天,周和月相对于原点:
eventsArray = [ {id: 1, date: 1387271989749 }, {id:2, date: 1387271989760} ];byday={};byweek={};bymonth={};function groupday(value, index, array){ d = new Date(value['date']); d = Math.floor(d.getTime()/(1000*60*60*24)); byday[d]=byday[d]||[]; byday[d].push(value);}function groupweek(value, index, array){ d = new Date(value['date']); d = Math.floor(d.getTime()/(1000*60*60*24*7)); byweek[d]=byweek[d]||[]; byweek[d].push(value);}function groupmonth(value, index, array){ d = new Date(value['date']); d = (d.getFullYear()-1970)*12 + d.getMonth(); bymonth[d]=bymonth[d]||[]; bymonth[d].push(value);}eventsArray.map(groupday);eventsArray.map(groupweek);eventsArray.map(groupmonth);


