/** * Overrides base format function, formats this date according to its available granularity, * unless $force'ed not to limit to granularity. * * @TODO Incorporate translation into this so translated names will be provided. */ public function format($format, $force = FALSE) { return parent::format($force ? $format : date_limit_format($format, $this->granularity)); }
/** * Alter the date_combo element after the Date module is finished with it. * * @param array $element * The $element array. * @param array $form_state * A keyed array containing the current state of the form. * @param array $context * An associative array containing the following keys: * - field: The $field array. * - instance: The $instance array. * - form: Nested array of form elements that comprise the form. */ function hook_date_combo_process_alter(&$element, &$form_state, $context) { $field = $context['field']; $instance = $context['instance']; $field_name = $element['#field_name']; $delta = $element['#delta']; // Add a date repeat form element, if needed. // We delayed until this point so we don't bother adding it to hidden fields. if (date_is_repeat_field($field, $instance)) { $item = $element['#value']; $element['rrule'] = array('#type' => 'date_repeat_rrule', '#theme_wrappers' => array('date_repeat_rrule'), '#default_value' => isset($item['rrule']) ? $item['rrule'] : '', '#date_timezone' => $element['#date_timezone'], '#date_format' => date_limit_format(date_input_format($element, $field, $instance), $field['settings']['granularity']), '#date_text_parts' => (array) $instance['widget']['settings']['text_parts'], '#date_increment' => $instance['widget']['settings']['increment'], '#date_year_range' => $instance['widget']['settings']['year_range'], '#date_label_position' => $instance['widget']['settings']['label_position'], '#prev_value' => isset($item['value']) ? $item['value'] : '', '#prev_value2' => isset($item['value2']) ? $item['value2'] : '', '#prev_rrule' => isset($item['rrule']) ? $item['rrule'] : '', '#date_repeat_widget' => str_replace('_repeat', '', $instance['widget']['type']), '#date_repeat_collapsed' => $instance['widget']['settings']['repeat_collapsed'], '#date_flexible' => 0, '#weight' => $instance['widget']['weight'] + 0.4); } }
function nys_date_all_day($which, $date1, $date2, $format, $node, $view = NULL) { if (empty($date1) || !is_object($date1)) { return ''; } if (empty($date2)) { $date2 = $date1; } $granularity = array_pop(date_format_order($format)); switch ($granularity) { case 'second': $max_comp = date_format($date2, 'H:i:s') == '23:59:59'; break; case 'minute': $max_comp = date_format($date2, 'H:i') == '23:59'; break; case 'hour': $max_comp = date_format($date2, 'H') == '23'; break; default: $max_comp = FALSE; } // Time runs from midnight to the maximum time -- call it 'All day'. if (date_format($date1, 'H:i:s') == '00:00:00' && $max_comp) { $format = date_limit_format($format, array('year', 'month', 'day')); return trim(date_format_date(${$which}, 'custom', $format) . ' ' . theme('date_all_day_label')); } elseif (date_format($date1, 'H:i:s') == '00:00:00' && date_format($date2, 'H:i:s') == '00:00:00') { $format = date_limit_format($format, array('year', 'month', 'day')); return date_format_date(${$which}, 'custom', $format); } else { return date_format_date(${$which}, 'custom', 'M. d'); } }