diff --git a/lib/public/share.php b/lib/public/share.php
index b215d7f93894853a14c26208f1862dcc12f7e010..6ef984732b921f2ca682c378f6d333c06c4ff170 100644
--- a/lib/public/share.php
+++ b/lib/public/share.php
@@ -418,11 +418,16 @@ class Share {
 	}
 
 	public static function setExpirationDate($itemType, $itemSource, $date) {
-		if ($item = self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), self::FORMAT_NONE, null, 1, false)) {
-			error_log('setting');
-			$query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `expiration` = ? WHERE `id` = ?');
-			$query->execute(array($date, $item['id']));
-			return true;
+		if ($items = self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), self::FORMAT_NONE, null, -1, false)) {
+			if (!empty($items)) {
+				$date = new \DateTime($date);
+				$date = date('Y-m-d H:i', $date->format('U') - $date->getOffset());
+				$query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `expiration` = ? WHERE `id` = ?');
+				foreach ($items as $item) {
+					$query->execute(array($date, $item['id']));
+				}
+				return true;
+			}
 		}
 		return false;
 	}