1.20.x date.class.inc protected BackdropDateTime::setGranularityFromTime($time, $tz)

Determines the granularity of a date based on the constructor's arguments.

Parameters

string $time: A date string.

bool $tz: TRUE if the date has a timezone, FALSE otherwise.

File

includes/date.class.inc, line 388

Class

BackdropDateTime
Extends PHP DateTime class for use with Backdrop.

Code

protected function setGranularityFromTime($time, $tz) {
  $this->granularity = array();
  $temp = date_parse($time);
  // Special case for 'now'.
  if ($time == 'now') {
    $this->granularity = array(
      'year',
      'month',
      'day',
      'hour',
      'minute',
      'second',
    );
  }
  else {
    // This PHP date_parse() method currently doesn't have resolution down to
    // seconds, so if there is some time, all will be set.
    foreach (self::$allgranularity as $g) {
      if ((isset($temp[$g]) && is_numeric($temp[$g])) || ($g == 'timezone' && (isset($temp['zone_type']) && $temp['zone_type'] > 0))) {
        $this->granularity[] = $g;
      }
    }
  }
  if ($tz) {
    $this->addGranularity('timezone');
  }
}