From c190b27b7b05d8aa411835c8fa33d13ca3d0f3b9 Mon Sep 17 00:00:00 2001
From: Matthieu Marcillaud <marcimat@rezo.net>
Date: Mon, 11 Dec 2017 23:07:38 +0000
Subject: [PATCH] Ticket #4060 :  Nettoyage de code PHP < 5.4

---
 ecrire/req/sqlite_fonctions.php | 84 ++++++++++-----------------------
 1 file changed, 26 insertions(+), 58 deletions(-)

diff --git a/ecrire/req/sqlite_fonctions.php b/ecrire/req/sqlite_fonctions.php
index c9adbc17f7..192113b713 100644
--- a/ecrire/req/sqlite_fonctions.php
+++ b/ecrire/req/sqlite_fonctions.php
@@ -362,65 +362,33 @@ function _sqlite_func_substring($string, $start, $len = null) {
  * @return int
  */
 function _sqlite_timestampdiff($unit, $date1, $date2) {
-	// PHP >= 5.3
-	if (function_exists("date_diff")) {
-		$d1 = date_create($date1);
-		$d2 = date_create($date2);
-		$diff = date_diff($d1, $d2);
-		$inv = $diff->invert ? -1 : 1;
-		switch ($unit) {
-			case "YEAR":
-				return $inv * $diff->y;
-			case "QUARTER":
-				return $inv * (4 * $diff->y + intval(floor($diff->m / 3)));
-			case "MONTH":
-				return $inv * (12 * $diff->y + $diff->m);
-			case "WEEK":
-				return $inv * intval(floor($diff->days / 7));
-			case "DAY":
-				#var_dump($inv*$diff->days);
-				return $inv * $diff->days;
-			case "HOUR":
-				return $inv * (24 * $diff->days + $diff->h);
-			case "MINUTE":
-				return $inv * ((24 * $diff->days + $diff->h) * 60 + $diff->i);
-			case "SECOND":
-				return $inv * (((24 * $diff->days + $diff->h) * 60 + $diff->i) * 60 + $diff->s);
-			case "MICROSECOND":
-				return $inv * (((24 * $diff->days + $diff->h) * 60 + $diff->i) * 60 + $diff->s) * 1000000;
-		}
-
-		return 0;
-	} // PHP < 5.3
-	else {
-		$d1 = strtotime($date1);
-		$d2 = strtotime($date2);
-		$diff = $d2 - $d1;
-		$sign = ($diff < 0 ? -1 : 1);
-		$diff = $sign * $diff;
-		switch ($unit) {
-			case "YEAR":
-				$diff = $d2 - $d1;
-
-				return $sign * (date('Y', abs($diff)) - date('Y', 0));
-			case "QUARTER":
-				return $sign * (4 * (date('Y', abs($diff)) - date('Y', 0)) + intval(floor((date('m', $diff) - 1) / 3)));
-			case "MONTH":
-				return $sign * ((date('Y', $diff) - date('Y', 0)) * 12 + date('m', $diff) - 1);
-			case "WEEK":
-				return intval(floor(($d2 - $d1) / 3600 / 7));
-			case "DAY":
-				return intval(floor(($d2 - $d1) / 3600 / 24));
-			case "HOUR":
-				return intval(floor(($d2 - $d1) / 3600));
-			case "MINUTE":
-				return intval(floor(($d2 - $d1) / 60));
-			case "SECOND":
-				return $d2 - $d1;
-			case "MICROSECOND":
-				return $d2 - $d1 * 1000000;
-		}
+	$d1 = date_create($date1);
+	$d2 = date_create($date2);
+	$diff = date_diff($d1, $d2);
+	$inv = $diff->invert ? -1 : 1;
+	switch ($unit) {
+		case "YEAR":
+			return $inv * $diff->y;
+		case "QUARTER":
+			return $inv * (4 * $diff->y + intval(floor($diff->m / 3)));
+		case "MONTH":
+			return $inv * (12 * $diff->y + $diff->m);
+		case "WEEK":
+			return $inv * intval(floor($diff->days / 7));
+		case "DAY":
+			#var_dump($inv*$diff->days);
+			return $inv * $diff->days;
+		case "HOUR":
+			return $inv * (24 * $diff->days + $diff->h);
+		case "MINUTE":
+			return $inv * ((24 * $diff->days + $diff->h) * 60 + $diff->i);
+		case "SECOND":
+			return $inv * (((24 * $diff->days + $diff->h) * 60 + $diff->i) * 60 + $diff->s);
+		case "MICROSECOND":
+			return $inv * (((24 * $diff->days + $diff->h) * 60 + $diff->i) * 60 + $diff->s) * 1000000;
 	}
+
+	return 0;
 }
 
 // http://code.spip.net/@_sqlite_func_unix_timestamp
-- 
GitLab