Index: date.inc
===================================================================
RCS file: /cvs/drupal/contributions/modules/date/Attic/date.inc,v
retrieving revision 1.27.2.45
diff -u -r1.27.2.45 date.inc
--- date.inc	22 Jan 2008 21:25:34 -0000	1.27.2.45
+++ date.inc	20 May 2008 00:14:31 -0000
@@ -1616,6 +1616,14 @@
 }
 
 /**
+ *  a function to figure out if any month/day/year data is to be collected or displayed
+ */
+function date_has_dateparts($granularity) {
+  if (!is_array($granularity)) $granularity = array();
+  return sizeof(array_intersect($granularity, array('M', 'D', 'Y'))) > 0 ? TRUE : FALSE;
+}
+
+/**
  *  Function to create an option list for input formats
  *
  *  @return array of date format strings
@@ -1808,16 +1816,26 @@
     $formats['input']['site-wide'] = $format;
   }
   $formats['input']['jscal'] = implode($date_separator, $jscal_format_date);
-  $formats['input']['jscal'] .= date_has_time($granularity) ? $format_separator . implode($time_separator, $jscal_format_time)  . $jscal_format_ampm : '';
+  if( date_has_dateparts( $granularity ) && date_has_time( $granularity )) {
+    $formats['input']['jscal'] .= $format_separator;
+  }
+  $formats['input']['jscal'] .= date_has_time($granularity) ? implode($time_separator, $jscal_format_time)  . $jscal_format_ampm : '';
 
   $formats['input']['text'] = implode($date_separator, $text_format_date);
-  $formats['input']['text'] .= date_has_time($granularity) ? $format_separator . implode($time_separator, $text_format_time)  . $text_format_ampm : '';
+  if( date_has_dateparts( $granularity ) && date_has_time( $granularity )) {
+    $formats['input']['text'] .= $format_separator;
+  }
+  $formats['input']['text'] .= date_has_time($granularity) ? implode($time_separator, $text_format_time)  . $text_format_ampm : '';
 
   $formats['input']['select'] = $select_format_date;
   $formats['input']['am_pm'] = $am_pm;
 
   $formats['input']['desc']  = implode($date_separator, $desc_date);
-  $formats['input']['desc'] .= date_has_time($granularity) ? $format_separator . implode($time_separator, $desc_time) : '';
+  if( date_has_dateparts( $granularity ) && date_has_time( $granularity )) {
+    $formats['input']['desc'] .= $format_separator;
+  }
+
+  $formats['input']['desc'] .= date_has_time($granularity) ? implode($time_separator, $desc_time) : '';
 
   return $formats;
 }
