diff --git a/evanced_events_importer.admin.inc b/evanced_events_importer.admin.inc
index ad3db40..f8cb851 100644
--- a/evanced_events_importer.admin.inc
+++ b/evanced_events_importer.admin.inc
@@ -481,6 +481,9 @@ function evanced_events_importer_admin_settings_submit($form, &$form_state) {
  */
 function evanced_events_importer_admin_settings_xmlmapper_submit($form, &$form_state) {
 
+  $date_field_name   = '';
+  $date_field_format = '';
+
   // Specify the name of the database table that should be updated.
   $db_table_name = 'evanced_events_importer_xmlmapper';
 
@@ -490,13 +493,38 @@ function evanced_events_importer_admin_settings_xmlmapper_submit($form, &$form_s
   // Make a loop for each field that needs to be mapped to one or more XML elements.
   for ($i = 0; $i <= $form_state['values']['evanced_events_importer_fieldcount']; $i++) {
 
+    // Set the field type as a variable.
+    $field_type = trim($form_state['values']['evanced_events_importer_field' . $i . '_node_field_type']);
+
+    // Determine if this is a date field.
+    if ($field_type == 'date') {
+
+      // Set the name of the date field as a variable.
+      $date_field_name = $form_state['values']['evanced_events_importer_field' . $i . '_node_field_name'];
+
+      // Ensure the date field database table exists.
+      if (db_table_exists('field_data_' . $date_field_name)) {
+
+        // Retrieve the schema of this table.
+        $date_dbtable_array = drupal_get_schema('field_data_' . $date_field_name);
+ 
+        // Set the date field's field-type as a
+        // variable (i.e. int, varchar or datetime).
+        $date_field_format = $date_dbtable_array['fields'][$date_field_name . '_value']['type'];
+
+      }
+
+    }
+
     // Create an array containing data, which maps one or
     // more XML elements to a specific content type field.
     $config_settings_array = array('xml_elements'          => $form_state['values']['evanced_events_importer_field' . $i . '_xml_elements_list'],
                                    'node_field_label'      => $form_state['values']['evanced_events_importer_field' . $i . '_node_field_label'],
                                    'node_field_name'       => $form_state['values']['evanced_events_importer_field' . $i . '_node_field_name'],
                                    'node_field_name_alias' => $form_state['values']['evanced_events_importer_field' . $i . '_node_field_name_alias'],
-                                   'node_field_type'       => $form_state['values']['evanced_events_importer_field' . $i . '_node_field_type'],
+                                   'node_field_type'       => $field_type .
+                                                             (((trim($field_type) == 'date') &&
+                                                               (trim($date_field_format) != '')) ? ' ' . trim($date_field_format) : ''),
                                    'last_updated'          => REQUEST_TIME,
     );
 
diff --git a/evanced_events_importer.module b/evanced_events_importer.module
index 45300a7..824488a 100644
--- a/evanced_events_importer.module
+++ b/evanced_events_importer.module
@@ -100,9 +100,10 @@ function evanced_events_importer_load_configuration($db_table_name, $field_type
   // Determine if settings for a specific type of field have been requested.
   if (trim($field_type) != '') {
     // Append the sql query.
-    $sql .= " WHERE node_field_type = :field_type";
+    $sql .= " WHERE SUBSTRING(node_field_type, 1, :field_type_string_length) = :field_type ";
     // Execute the sql query.
-    $result = db_query($sql, array(':field_type' => trim($field_type)));
+    $result = db_query($sql, array(':field_type_string_length' => strlen(trim($field_type)),
+                                   ':field_type' => trim($field_type)));
   }
   else {
     // Otherwise, grab all the data from this table.
diff --git a/evanced_events_importer.xml2node.inc b/evanced_events_importer.xml2node.inc
index 4d7e220..e00b8d6 100644
--- a/evanced_events_importer.xml2node.inc
+++ b/evanced_events_importer.xml2node.inc
@@ -215,6 +215,14 @@ function evanced_events_importer_event_dates($node_values_array) {
   $element_starttime = '';
   $element_endtime   = '';
 
+  // Create an array specifying how the date field should be
+  // formatted. This is based on whether the user created the field
+  // in datetime format, ISO format, or as a Unix timestamp.
+  $date_format_array = array('datetime' => 'Y-m-d H:i:s',  // Datetime format
+                             'varchar'  => 'Y-m-d\TH:i:s', // ISO format
+                             'int'      => 'U',            // Unix timestamp
+                            );
+
   // Retrieve any date configuration settings
   // from the database and load them as an object.
   $xmlmapper_config_settings = evanced_events_importer_load_configuration('evanced_events_importer_xmlmapper', 'date');
@@ -254,8 +262,9 @@ function evanced_events_importer_event_dates($node_values_array) {
   $datetime_end   = trim($node_values_array[$element_date] . ' ' . $node_values_array[$element_endtime]);
 
   // Set the starting and ending dates as variables, formatting them for the database.
-  $node_values_array['event_date_from'] = date('Y-m-d\TH:i:s', strtotime($datetime_start));
-  $node_values_array['event_date_to']   = date('Y-m-d\TH:i:s', strtotime($datetime_end));
+  $node_values_array['event_date_from'] = date('Y-m-d H:i:s', strtotime($datetime_start));
+  $node_values_array['event_date_to']   = date('Y-m-d H:i:s', strtotime($datetime_end));
+  $node_values_array['event_date_format'] = $date_format_array[trim(str_replace('date ', '', $xmlmapper_object->node_field_type))];
 
   return $node_values_array;
 
@@ -274,13 +283,13 @@ function evanced_events_importer_event_dates($node_values_array) {
  * @return
  *   The largest date value that was found.
  */
-function evanced_events_importer_find_maximum_feed_date($datetime_start, $xml_maxdate) {
+function evanced_events_importer_find_maximum_feed_date($datetime_start, $date_format, $xml_maxdate) {
 
   // Determine if the current start date happens
   // later than any other date processed so far.
-  if (strtotime($datetime_start) > $xml_maxdate) {
+  if (strtotime($datetime_start) > strtotime($xml_maxdate)) {
     // Update the value of the maximum date.
-    $xml_maxdate = strtotime($datetime_start);
+    $xml_maxdate = date($date_format, strtotime($datetime_start));
   }
 
   return $xml_maxdate;
@@ -300,13 +309,13 @@ function evanced_events_importer_find_maximum_feed_date($datetime_start, $xml_ma
  * @return
  *   The smallest date value that was found.
  */
-function evanced_events_importer_find_minimum_feed_date($datetime_start, $xml_mindate) {
+function evanced_events_importer_find_minimum_feed_date($datetime_start, $date_format, $xml_mindate) {
 
   // Determine if the new start date happens
   // earlier than any other date processed so far.
-  if (strtotime($datetime_start) < $xml_mindate) {
+  if (strtotime($datetime_start) < strtotime($xml_mindate)) {
     // Update the value of the minimum date.
-    $xml_mindate = strtotime($datetime_start);
+    $xml_mindate = date($date_format, strtotime($datetime_start));
   }
 
   return $xml_mindate;
@@ -373,10 +382,12 @@ function evanced_events_importer_process_node($nid, $node_values_array) {
   foreach ($xmlmapper_config_settings as $xmlmapper_object) {
 
     // Determine if this is a date field.
-    if ($xmlmapper_object->node_field_type == 'date') {
+    if (substr($xmlmapper_object->node_field_type, 0, 4) == 'date') {
       // Add the start and end dates to the node object.
-      $node->{$xmlmapper_object->node_field_name}[$node->language][0]['value']  = strtotime($node_values_array['event_date_from']);
-      $node->{$xmlmapper_object->node_field_name}[$node->language][0]['value2'] = strtotime($node_values_array['event_date_to']);
+      $node->{$xmlmapper_object->node_field_name}[$node->language][0]['value']  = date($node_values_array['event_date_format'],
+                                                                                       strtotime($node_values_array['event_date_from']));
+      $node->{$xmlmapper_object->node_field_name}[$node->language][0]['value2'] = date($node_values_array['event_date_format'],
+                                                                                       strtotime($node_values_array['event_date_to']));
       // drupal_set_message($xmlmapper_object->node_field_name . ' = ' . $node->{$xmlmapper_object->node_field_name}[$node->language][0]['value'] . ' - ' . $node->{$xmlmapper_object->node_field_name}[$node->language][0]['value2'] . '; ', 'status');
     } 
     // Otherwise, determine if this is an address field.
@@ -616,7 +627,7 @@ function evanced_events_importer_delete_events($valid_evanced_ids, $xml_mindate,
     }
 
     // Determine if this is a CCK date field.
-    if (drupal_strtolower(trim($xmlmapper_object->node_field_type)) == 'date') {
+    if (drupal_strtolower(trim(substr($xmlmapper_object->node_field_type, 0, 4))) == 'date') {
       // Set the CCK date field name as a variable.
       $fieldname_date = $xmlmapper_object->node_field_name;
     }
@@ -658,8 +669,8 @@ function evanced_events_importer_delete_events($valid_evanced_ids, $xml_mindate,
     $result = db_query($sql, array(':bundle1' => trim($main_config_settings[0]->content_type_name),
                                    ':bundle2' => trim($main_config_settings[0]->content_type_name),
                                    ':valid_evanced_ids' => $valid_evanced_ids_array,
-                                   ':timespan_start' => date('Y-m-d\TH:i:s', $xml_mindate),
-                                   ':timespan_end' => date('Y-m-d\TH:i:s', $xml_maxdate)));
+                                   ':timespan_start' => $xml_mindate,
+                                   ':timespan_end' => $xml_maxdate));
 
     // Make loop for each record in the query results.
     foreach ($result as $data) {
@@ -756,11 +767,11 @@ function evanced_events_importer_parse_xml() {
 
       // Determine whether the current date happens
       // later than any other date processed so far.
-      $xml_maxdate = evanced_events_importer_find_maximum_feed_date($node_values_array['event_date_from'], $xml_maxdate);
+      $xml_maxdate = evanced_events_importer_find_maximum_feed_date($node_values_array['event_date_from'], $node_values_array['event_date_format'], $xml_maxdate);
 
       // Determine whether the current date happens
       // earlier than any other date processed so far.
-      $xml_mindate = evanced_events_importer_find_minimum_feed_date($node_values_array['event_date_from'], $xml_mindate);
+      $xml_mindate = evanced_events_importer_find_minimum_feed_date($node_values_array['event_date_from'], $node_values_array['event_date_format'], $xml_mindate);
 
       // Append the current evanced ID to the comma-delimited string.
       $evanced_ids_string .= ',' . $node_values_array['id'];
