function passDate() { if (!$this->params->publish_up && !$this->params->publish_down) { // no date range set return $this->assignment == 'include'; } require_once JPATH_PLUGINS . '/system/nnframework/helpers/text.php'; nnText::fixDate($this->params->publish_up); nnText::fixDate($this->params->publish_down); $now = strtotime($this->date->format('Y-m-d H:i:s', true)); $tz = new DateTimeZone(JFactory::getApplication()->getCfg('offset')); $up = JFactory::getDate($this->params->publish_up)->setTimeZone($tz); $down = JFactory::getDate($this->params->publish_down)->setTimeZone($tz); if (isset($this->params->recurring) && $this->params->recurring) { if (!(int) $this->params->publish_up || !(int) $this->params->publish_down) { // no date range set return $this->assignment == 'include'; } $up = strtotime(date('Y') . $up->format('-m-d H:i:s')); $down = strtotime(date('Y') . $down->format('-m-d H:i:s')); // pass: // 1) now is between up and down // 2) up is later in year than down and: // 2a) now is after up // 2b) now is before down if ($up < $now && $down > $now || $up > $down && ($up < $now || $down > $now)) { return $this->assignment == 'include'; } // outside date range return $this->pass(false); } if ((int) $this->params->publish_up && strtotime($up->format('Y-m-d H:i:s')) > $now || (int) $this->params->publish_down && strtotime($down->format('Y-m-d H:i:s')) < $now) { // outside date range return $this->pass(false); } // pass return $this->assignment == 'include'; }