You are here

function date_default_date in Date 7.2

Same name and namespace in other branches
  1. 7.3 date_api/date_api_elements.inc \date_default_date()
  2. 7 date_api/date_api_elements.inc \date_default_date()

Create a date object from a datetime string value.

4 calls to date_default_date()
date_popup_element_value_callback in date_popup/date_popup.module
Element value callback for date_popup element.
date_select_element_process in date_api/date_api_elements.inc
Flexible date/time drop-down selector.
date_select_element_value_callback in date_api/date_api_elements.inc
Element value callback for date_select element.
date_text_element_value_callback in date_api/date_api_elements.inc
Element value callback for date_text element.

File

date_api/date_api_elements.inc, line 111
Date API elements themes and validation.

Code

function date_default_date(array $element) {
  $granularity = date_format_order($element['#date_format']);
  $default_value = $element['#default_value'];
  $format = DATE_FORMAT_DATETIME;

  // The text and popup widgets might return less than a full datetime string.
  if (is_string($element['#default_value']) && strlen($element['#default_value']) < 19) {
    switch (strlen($element['#default_value'])) {
      case 16:
        $format = 'Y-m-d H:i';
        break;
      case 13:
        $format = 'Y-m-d H';
        break;
      case 10:
        $format = 'Y-m-d';
        break;
      case 7:
        $format = 'Y-m';
        break;
      case 4:
        $format = 'Y';
        break;
    }
  }
  $date = new DateObject($default_value, $element['#date_timezone'], $format);
  if (is_object($date)) {
    $date
      ->limitGranularity($granularity);
    if ($date
      ->validGranularity($granularity, $element['#date_flexible'])) {
      date_increment_round($date, $element['#date_increment']);
    }
    return $date;
  }
  return NULL;
}