From 7e6679d20b989cfb36ba86c3cc1e6670db9d7398 Mon Sep 17 00:00:00 2001
From: Chris Leppanen <chris.leppanen@gmail.com>
Date: Thu, 16 May 2013 11:54:27 -0700
Subject: [PATCH] Issue #1989196 by beeradb: Fixed Never Pass FeedsDateTime
 objects into date_create().

---
 mappers/date.inc | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/mappers/date.inc b/mappers/date.inc
index 9344d279..8ff4cbb0 100644
--- a/mappers/date.inc
+++ b/mappers/date.inc
@@ -46,23 +46,28 @@ function date_feeds_processor_targets_alter(&$targets, $entity_type, $bundle_nam
  */
 function date_feeds_set_target($source, $entity, $target, $feed_element) {
   list($field_name, $sub_field) = explode(':', $target, 2);
-  if (!($feed_element instanceof FeedsDateTimeElement)) {
-    if (!is_array($feed_element)) {
-      $feed_element = array($feed_element);
-    }
-    $delta = 0;
-    foreach ($feed_element as $f) {
-      if (empty($f) || !is_numeric($f) && !date_create($f)) {
-        $array_element = new FeedsDateTimeElement(NULL, NULL);
+
+  if (!is_array($feed_element)) {
+    $feed_element = array($feed_element);
+  }
+
+  $delta = 0;
+  foreach ($feed_element as $f) {
+
+    if (!($feed_element instanceof FeedsDateTimeElement)) {
+
+      if (empty($f) || !is_numeric($f) && is_string($f) && !date_create($f)) {
+        $f = new FeedsDateTimeElement(NULL, NULL);
       }
       elseif ($sub_field == 'end') {
-        $array_element = new FeedsDateTimeElement(NULL, $f);
+        $f = new FeedsDateTimeElement(NULL, $f);
       }
       else {
-        $array_element = new FeedsDateTimeElement($f, NULL);
+        $f = new FeedsDateTimeElement($f, NULL);
       }
-      $array_element->buildDateField($entity, $field_name, $delta);
-      $delta++;
     }
+
+    $f->buildDateField($entity, $field_name, $delta);
+    $delta++;
   }
 }
-- 
GitLab