Skip to content
Extraits de code Groupes Projets
Valider c190b27b rédigé par marcimat's avatar marcimat
Parcourir les fichiers

Ticket #4060 : Nettoyage de code PHP < 5.4

parent 45d748da
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter