Horde_Date::before PHP Method

before() public method

Returns whether this date is before the other.
public before ( mixed $other ) : boolean
$other mixed The date to compare to.
return boolean True if this date is before the other.
    public function before($other)
    {
        return $this->compareDate($other) < 0;
    }

Usage Example

Exemplo n.º 1
0
 /**
  *
  * @param Horde_Date $start  The start time of the period
  * @param Horde_Date $end   The end time of the period
  *
  * @return array of listTimeObjects arrays.
  */
 public function listTimeObjects(Horde_Date $start = null, Horde_Date $end = null)
 {
     global $conf, $prefs;
     // No need to continue if the forecast days are not in the current
     // range.
     $forecast_start = new Horde_Date(time());
     $forecast_end = clone $forecast_start;
     $forecast_end->mday += 7;
     if ($end->before($forecast_start) || $start->after($forecast_end)) {
         return array();
     }
     $weather = $this->_create();
     $lengths = $weather->getSupportedForecastLengths();
     try {
         $units = $weather->getUnits($weather->units);
         $forecast = $weather->getForecast($this->_location, max(array_keys($lengths)));
         $current = $weather->getCurrentConditions($this->_location);
     } catch (Horde_Service_Weather_Exception $e) {
         throw new Timeobjects_Exception($e);
     }
     $objects = array();
     foreach ($forecast as $data) {
         $day = $data->date;
         $day->hour = 0;
         $day->min = 0;
         $day->sec = 0;
         $day_end = clone $day;
         $day_end->mday++;
         $title = sprintf('%s %d°%s/%d°%s', $data->conditions, $data->high, $units['temp'], $data->low, $units['temp']);
         // Deterine what information we have to display.
         $pop = $data->precipitation_percent === false ? _("N/A") : $data->precipitation_percent . '%';
         if ($forecast->detail == Horde_Service_Weather::FORECAST_TYPE_STANDARD) {
             if ($data->humidity !== false && $data->wind_direction !== false) {
                 $description = sprintf(_("Conditions: %s\nHigh temperature: %d%s\nPrecipitation: %s\nHumidity: %d%%\nWinds: From the %s at %d%s"), _($data->conditions), $data->high, '°' . $units['temp'], $pop, $data->humidity, $data->wind_direction, $data->wind_speed, $units['wind']);
             } else {
                 $description = sprintf(_("Conditions: %s\nHigh temperature: %d%s\nPrecipitation: %s\n"), _($data->conditions), $data->high, '°' . $units['temp'], $pop);
             }
         } elseif ($forecast->detail == Horde_Service_Weather::FORECAST_TYPE_DETAILED) {
             // @TODO
             // No drivers support this yet. AccuWeather will, and possibly
             // wunderground if they accept my request.
         }
         $station = $weather->getStation();
         $body = sprintf(_("Location: %s"), $weather->getStation()->name);
         if (!empty($weather->getStation()->sunrise)) {
             $body .= sprintf(_("Sunrise: %s\nSunset: %s\n"), $weather->getStation()->sunrise, $weather->getStation()->sunset);
         }
         $body .= "\n" . $description;
         $objects[] = array('id' => $day->timestamp(), 'title' => $title, 'description' => $body, 'start' => $day->strftime('%Y-%m-%dT00:00:00'), 'end' => $day_end->strftime('%Y-%m-%dT00:00:00'), 'recurrence' => Horde_Date_Recurrence::RECUR_NONE, 'params' => array(), 'link' => new Horde_Url('#'), 'icon' => (string) Horde_Themes::img('weather/23x23/' . $data->icon));
         $day->mday++;
     }
     return $objects;
 }
All Usage Examples Of Horde_Date::before