You are here

function date_format_order in Date 7.3

Same name and namespace in other branches
  1. 8 date_api/date_api.module \date_format_order()
  2. 5.2 date_api.module \date_format_order()
  3. 6.2 date_api.module \date_format_order()
  4. 6 date_api.module \date_format_order()
  5. 7 date_api/date_api.module \date_format_order()
  6. 7.2 date_api/date_api.module \date_format_order()

Converts a format to an ordered array of granularity parts.

Example: date_format_order('m/d/Y H:i') returns array( 0 => 'month', 1 => 'day', 2 => 'year', 3 => 'hour', 4 => 'minute', );

Parameters

string $format: A date format string.

Return value

array An array of ordered granularity elements from the given format string.

16 calls to date_format_order()
date_combo_validate in ./date_elements.inc
Validate and update a combo element.
date_default_date in date_api/date_api_elements.inc
Create a date object from a datetime string value.
date_parts_element in date_api/date_api_elements.inc
Creates form elements for one or more date parts.
date_popup_date_granularity in date_popup/date_popup.module
Date popup date granularity.
date_popup_element_value_callback in date_popup/date_popup.module
Element value callback for date_popup element.

... See full list

File

date_api/date_api.module, line 2462
This module will make the date API available to other modules.

Code

function date_format_order($format) {
  $order = array();
  if (empty($format)) {
    return $order;
  }
  $max = strlen($format);
  for ($i = 0; $i <= $max; $i++) {
    if (!isset($format[$i])) {
      break;
    }
    switch ($format[$i]) {
      case 'd':
      case 'j':
        $order[] = 'day';
        break;
      case 'F':
      case 'M':
      case 'm':
      case 'n':
        $order[] = 'month';
        break;
      case 'Y':
      case 'y':
        $order[] = 'year';
        break;
      case 'g':
      case 'G':
      case 'h':
      case 'H':
        $order[] = 'hour';
        break;
      case 'i':
        $order[] = 'minute';
        break;
      case 's':
        $order[] = 'second';
        break;
    }
  }
  return $order;
}