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.

Data Model Questions

Expires.InPast not working right


4 Posts   1507 Views


22 October 2009 at 9:02pm Community Member, 49 Posts

I've been trying to make the InPast function to work.

$Expires.InPast outputs 1 when its out of date, but when I run a <% if Expires.InPast %>..<% end_if %> it doesn't to anything with it and shows every article..

Any idea why or what I'm doing wrong?


26 November 2009 at 7:33am Community Member, 66 Posts

I am banging my head against the wall on this problem, too!

Did you find a solution? If so, I would be very interested in what you came up with! Thanks in advance.


7 December 2009 at 8:59am Community Member, 80 Posts

I have this problem too!


7 December 2009 at 1:10pm Community Member, 243 Posts

Hmmm... Lots of people seem to be having trouble getting this to work. I never have needed to use it, so I can't say from experience where the issue lies. However, i do have a solution.

Simply, when you do this on an item, it will be a property of a DataObject, so we can simply build a method into the model called 'hasExpired'.

Simply in the model we need to create a method:

class Page extends SiteTree {
public function hasExpired() {
return (strtotime($this->Date) < time());

Now, in your template you can do:

<% if hasExpired %>
<% end_if %>

Obviously 'Date' will have to be declared in the $db array with date type

I hope that helps