You are here

function date_formatter_format in Date 5.2

Same name and namespace in other branches
  1. 8 date.module \date_formatter_format()
  2. 6.2 date/date.module \date_formatter_format()
  3. 6 date/date.module \date_formatter_format()
  4. 7.3 date.module \date_formatter_format()
  5. 7 date.module \date_formatter_format()
  6. 7.2 date.module \date_formatter_format()

Helper function to return the date format used by a specific formatter.

1 call to date_formatter_format()
date_formatter_process in date/date.module
Helper function for creating formatted date arrays from a formatter.

File

date/date.module, line 479
Defines date/time field types for the Content Construction Kit (CCK).

Code

function date_formatter_format($formatter, $field_name) {
  $fields = content_fields();
  $field = $fields[$field_name];

  // Any field might want to display the timezone name.
  $field['granularity'][] = 'timezone';
  switch ($formatter) {
    case 'ical':
      return 'Ymd\\THis';
    case 'timestamp':
      return 'U';
    case 'iso':
      return DATE_FORMAT_ISO . 'P';
    case 'feed':
      return 'D, j M Y H:i:s O';
    case 'format_interval':
      return 'format_interval';
    case 'long':
    case 'medium':
    case 'short':
    case 'default':
      $custom = 'output_format_custom' . ($formatter != 'default' ? '_' . $formatter : '');
      $value = 'output_format_date' . ($formatter != 'default' ? '_' . $formatter : '');
      if ($field[$custom] > '') {
        $format = $field[$custom];
      }
      elseif ($field[$value]) {
        $format = $field[$value];
      }
      else {
        switch ($formatter) {
          case 'long':
            $format = variable_get('date_format_long', 'l, F j, Y - H:i');
            break;
          case 'medium':
            $format = variable_get('date_format_medium', 'D, m/d/Y - H:i');
            break;
          default:
            $format = variable_get('date_format_short', 'm/d/Y - H:i');
            break;
        }
      }
      break;
  }

  // A selected format might include timezone information.
  $granularity = date_granularity($field);
  array_push($granularity, 'timezone');
  return date_limit_format($format, $granularity);
}