From 28b35c7865b8f633355a66e57e56ab46189f414e Mon Sep 17 00:00:00 2001
From: Tim Plunkett <git@plnktt.com>
Date: Fri, 17 Jun 2011 13:25:33 -0400
Subject: [PATCH] Issue #1192020 by tim.plunkett: Fixed date granularity is too fragile in date_field_all_day().

---
 date.module              |    3 +--
 date_api/date_api.module |    2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/date.module b/date.module
index cd542f2..2a46540 100644
--- a/date.module
+++ b/date.module
@@ -642,8 +642,7 @@ function date_field_all_day($field, $instance, $date1, $date2 = NULL) {
     $date2 = $date1;
   }
 
-  $granularity = $field['settings']['granularity'];
-  $granularity = array_pop($granularity);
+  $granularity = date_granularity_precision($field['settings']['granularity']);
   $increment = isset($instance['widget']['settings']['increment']) ? $instance['widget']['settings']['increment'] : 1;
   return date_is_all_day(date_format($date1, DATE_FORMAT_DATETIME), date_format($date2, DATE_FORMAT_DATETIME), $granularity, $increment);
 
diff --git a/date_api/date_api.module b/date_api/date_api.module
index 6104130..e311527 100644
--- a/date_api/date_api.module
+++ b/date_api/date_api.module
@@ -1088,7 +1088,7 @@ function date_granularity_array_from_precision($precision) {
  * Give a granularity array, return the highest precision.
  */
 function date_granularity_precision($granularity_array) {
-  $input = clone($granularity_array);
+  $input = date_granularity_sorted($granularity_array);
   return array_pop($input);
 }
 
-- 
1.7.3.2

