--- date.inc.orig	2006-04-20 08:25:08.000000000 -0400
+++ date.inc	2006-05-08 14:49:45.000000000 -0400
@@ -68,9 +68,9 @@
   $timezone_out  = isset($params['timezone_out']) ? $params['timezone_out'] : date_get_site_timezone();
   $description   = $params['description'];
 
-  if ($ampm) {
+  if ($show_ampm) {
     $hour_format = t('%I');
-    for ($i = 0; $i <= 12; $i++) $hours[$i] = $i < 10 ? "0$i" : $i;
+    for ($i = 1; $i <= 12; $i++) $hours[$i] = $i;
   } 
   else {
     $hour_format = t('%H');
@@ -285,10 +285,24 @@
  * 
  */
 function date_array2iso($array) {
+  // convert 12 hour time to 24 hour time
+  $hour = $array['hour'];
+  if (isset($array['ampm'])) {
+    if ($array['ampm'] == 'am') {
+      if ($hour == 12) {
+        $hour = 0;
+      }
+    }
+    else if ($array['ampm'] == 'pm') {
+      if ($hour < 12) {
+        $hour += 12;
+      }
+    } 
+  }
   return  sprintf("%04d",intval($array['year'])) . 
     '-'. sprintf("%02d",intval($array['month'])) .  
     '-'. sprintf("%02d",intval($array['day'])) . 
-    'T'. sprintf("%02d",intval($array['hour'])) . 
+    'T'. sprintf("%02d",intval($hour)) . 
     ':'. sprintf("%02d",intval($array['minute'])) . 
     ':'. sprintf("%02d",intval($array['second']));
 }
@@ -358,7 +372,7 @@
 }
 
 /**
- *  Use stringtotime function to create an iso date out of text
+ *  Use strtotime function to create an iso date out of text
  */
 function date_text2iso($text) {
   // remove T from iso-formated date so strtotime can correctly interpret date
