From 7d8592e64d4b17b42dbfd4be71182605d6bdcc1c Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <bruederli@kolabsys.com>
Date: Wed, 7 Jan 2015 17:04:21 +0100
Subject: Correctly handle DateTime values in Vcard export

---
 program/steps/addressbook/export.inc | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/program/steps/addressbook/export.inc b/program/steps/addressbook/export.inc
index a6d3af978..d2507c13c 100644
--- a/program/steps/addressbook/export.inc
+++ b/program/steps/addressbook/export.inc
@@ -133,8 +133,13 @@ function prepare_for_export(&$record, $source = null)
 
         foreach ($record as $key => $values) {
             list($field, $section) = explode(':', $key);
-            foreach ((array)$values as $value) {
-                if (is_array($value) || @strlen($value)) {
+            // avoid casting DateTime objects to array
+            // (same as in rcube_contacts::convert_save_data())
+            if (is_object($values) && is_a($values, 'DateTime')) {
+                $values = array(0 => $values);
+            }
+            foreach ($values as $value) {
+                if (is_array($value) || is_a($value, 'DateTime') || @strlen($value)) {
                     $vcard->set($field, $value, strtoupper($section));
                 }
             }
-- 
cgit v1.2.3