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