commit bca755c323aab81fe886fd21aeea8292219ca5a5
Author: Jimmy Berry <jimmy@boombatower.com>
Date:   Fri Feb 25 17:43:16 2011 -0600

    Add time interval field handler.

diff --git handlers/views_handler_field_time_interval.inc handlers/views_handler_field_time_interval.inc
new file mode 100644
index 0000000..bd6958f
--- /dev/null
+++ handlers/views_handler_field_time_interval.inc
@@ -0,0 +1,31 @@
+<?php
+/**
+ * A handler to provide proper displays for time intervals.
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_field_time_interval extends views_handler_field {
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['granularity'] = array('default' => 2);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    $form['granularity'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Granularity'),
+      '#description' => t('How many different units to display in the string.'),
+      '#default_value' => isset($this->options['granularity']) ? $this->options['granularity'] : 2,
+    );
+  }
+
+  function render($values) {
+    $value = $values->{$this->field_alias};
+    return format_interval($value, isset($this->options['granularity']) ? $this->options['granularity'] : 2);
+  }
+}
diff --git views.info views.info
index fdcd74b..5b8a6f0 100644
--- views.info
+++ views.info
@@ -26,6 +26,7 @@ files[] = handlers/views_handler_field_markup.inc
 files[] = handlers/views_handler_field_math.inc
 files[] = handlers/views_handler_field_numeric.inc
 files[] = handlers/views_handler_field_prerender_list.inc
+files[] = handlers/views_handler_field_time_interval.inc
 files[] = handlers/views_handler_field_url.inc
 files[] = handlers/views_handler_filter.inc
 files[] = handlers/views_handler_filter_group_by_numeric.inc
