# Group objects by month

**URL:** <https://www.ruby-forum.com/t/group-objects-by-month/186431>\
**Category:** Rails\
**Created:** [April 7, 2010, 4:36am UTC](https://www.ruby-forum.com/t/group-objects-by-month/186431 "2010-04-07T04:36:24Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![eggie5](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/7c8e57/32.png) [@eggie5](https://www.ruby-forum.com/u/eggie5)\
**Post date:** [April 7, 2010, 4:36am UTC](https://www.ruby-forum.com/t/group-objects-by-month/186431/1 "2010-04-07T04:36:24Z")

</div>

I have a collection of of objects from an query. I can group them by  
using:

@dogs.group\_by(&:birth\_date)

that works fine… and it groups them by date, however, I want to  
group them by month. How can I do this?

---

<div class="post-metadata">

**Author:** ![eggie5](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/7c8e57/32.png) [@eggie5](https://www.ruby-forum.com/u/eggie5)\
**Post date:** [April 7, 2010, 4:37am UTC](https://www.ruby-forum.com/t/group-objects-by-month/186431/2 "2010-04-07T04:37:34Z")

</div>

or group by week for that matter…

---

<div class="post-metadata">

**Author:** ![eggie5](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/7c8e57/32.png) [@eggie5](https://www.ruby-forum.com/u/eggie5)\
**Post date:** [April 7, 2010, 5:30am UTC](https://www.ruby-forum.com/t/group-objects-by-month/186431/3 "2010-04-07T05:30:14Z")

</div>

If :birth\_date is a Date, for instance, you could do it like this:

@dogs.group\_by{|dog| dog.birth\_date.month}

---

<div class="post-metadata">

**Author:** ![eggie5](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/7c8e57/32.png) [@eggie5](https://www.ruby-forum.com/u/eggie5)\
**Post date:** [April 8, 2010, 2:10am UTC](https://www.ruby-forum.com/t/group-objects-by-month/186431/4 "2010-04-08T02:10:07Z")

</div>

thanks
