Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

DataObjectManager Module /

Discuss the DataObjectManager module, and the related ImageGallery module.

Moderators: martimiz, UncleCheese, Sean, biapar, Willr, Ingo, swaiba, simon_w

DataObject::get by Year from a DateField?


Reply


4 Posts   1130 Views

Avatar
oleze

Community Member, 65 Posts

21 September 2010 at 6:34am

I'm trying to get all DataObjects of my custom Page-Type "MediaReports" with DataObject::get. All MediaReports have a DateField and I would like to output them for the current year (and seperate them from the older ones).

I tried

function getMediaReports_ThisYear() {
         $today = date('Y');
         return DataObject::get("MediaReport", "Year = '{$today}'", "Date DESC", "", "");
      }


which works well with a NumericField called "Year". But I'd like to get this automatically from my DateField without declaring an extra NumericField. Can somebody help me?

Avatar
simon_w

Forum Moderator, 474 Posts

21 September 2010 at 7:23am

Thanks to SQL functions, this is actually rather simple.

function getMediaReports_ThisYear() {
return DataObject::get("MediaReport", 'YEAR("DATE") = YEAR(CURDATE())', "Date DESC";
}

Avatar
oleze

Community Member, 65 Posts

21 September 2010 at 8:40am

Thank you, works like a charm ;).

Avatar
mierla

Community Member, 16 Posts

27 January 2012 at 2:10am

I just wanted to add my thanks - I was able to use this construction to very easily retrieve a week's worth of events for a listing page - not just seven days from today, but a true week, including past days. Thank you!