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

Homogénéisation des retours des filtres de dates (string),

ce qui corrige certains problèmes indiqués par l’analyse statique.

Les filtres |mois, |minutes, |annee retournent toujours un string
parent c474ecd7
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -62,7 +62,7 @@ function extraire_date($texte): string { ...@@ -62,7 +62,7 @@ function extraire_date($texte): string {
* - une date au format datetime * - une date au format datetime
* - une chaîne vide si la date est considérée nulle * - une chaîne vide si la date est considérée nulle
**/ **/
function normaliser_date($date, $forcer_jour = false) { function normaliser_date($date, $forcer_jour = false): string {
$date = vider_date($date); $date = vider_date($date);
if ($date) { if ($date) {
if (preg_match('/^[0-9]{8,10}$/', $date)) { if (preg_match('/^[0-9]{8,10}$/', $date)) {
...@@ -97,7 +97,7 @@ function normaliser_date($date, $forcer_jour = false) { ...@@ -97,7 +97,7 @@ function normaliser_date($date, $forcer_jour = false) {
* - La date entrée (si elle n'est pas considérée comme nulle) * - La date entrée (si elle n'est pas considérée comme nulle)
* - Une chaine vide * - Une chaine vide
**/ **/
function vider_date($letexte, $verif_format_date = false) { function vider_date($letexte, $verif_format_date = false): string {
if ( if (
!$verif_format_date !$verif_format_date
or (in_array(strlen($letexte), [10,19]) and or (in_array(strlen($letexte), [10,19]) and
...@@ -127,7 +127,7 @@ function vider_date($letexte, $verif_format_date = false) { ...@@ -127,7 +127,7 @@ function vider_date($letexte, $verif_format_date = false) {
* - [heures, minutes, secondes] si horaire trouvée * - [heures, minutes, secondes] si horaire trouvée
* - [0, 0, 0] sinon * - [0, 0, 0] sinon
**/ **/
function recup_heure($date) { function recup_heure($date): array {
static $d = [0, 0, 0]; static $d = [0, 0, 0];
if (!preg_match('#([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})#', $date, $r)) { if (!preg_match('#([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})#', $date, $r)) {
...@@ -147,9 +147,9 @@ function recup_heure($date) { ...@@ -147,9 +147,9 @@ function recup_heure($date) {
* @uses recup_heure() * @uses recup_heure()
* *
* @param string $numdate La date à extraire * @param string $numdate La date à extraire
* @return int heures, sinon 0 * @return string heures, sinon 0
**/ **/
function heures($numdate) { function heures($numdate): string {
$heures = null; $heures = null;
$date_array = recup_heure($numdate); $date_array = recup_heure($numdate);
if ($date_array) { if ($date_array) {
...@@ -167,9 +167,9 @@ function heures($numdate) { ...@@ -167,9 +167,9 @@ function heures($numdate) {
* @uses recup_heure() * @uses recup_heure()
* *
* @param string $numdate La date à extraire * @param string $numdate La date à extraire
* @return int minutes, sinon 0 * @return string minutes, sinon 0
**/ **/
function minutes($numdate) { function minutes($numdate): string {
$minutes = null; $minutes = null;
$date_array = recup_heure($numdate); $date_array = recup_heure($numdate);
if ($date_array) { if ($date_array) {
...@@ -187,9 +187,9 @@ function minutes($numdate) { ...@@ -187,9 +187,9 @@ function minutes($numdate) {
* @uses recup_heure() * @uses recup_heure()
* *
* @param string $numdate La date à extraire * @param string $numdate La date à extraire
* @return int secondes, sinon 0 * @return string secondes, sinon 0
**/ **/
function secondes($numdate) { function secondes($numdate): string {
$secondes = null; $secondes = null;
$date_array = recup_heure($numdate); $date_array = recup_heure($numdate);
if ($date_array) { if ($date_array) {
...@@ -214,11 +214,10 @@ function secondes($numdate) { ...@@ -214,11 +214,10 @@ function secondes($numdate) {
* - si 'abbr' ne précise pas l'unité des minutes : 12h10 * - si 'abbr' ne précise pas l'unité des minutes : 12h10
* @return string L'heure formatée dans la langue en cours. * @return string L'heure formatée dans la langue en cours.
**/ **/
function heures_minutes($numdate, $forme = '') { function heures_minutes($numdate, $forme = ''): string {
if ($forme != 'abbr') { if ($forme !== 'abbr') {
return _T('date_fmt_heures_minutes', ['h' => heures($numdate), 'm' => minutes($numdate)]); return _T('date_fmt_heures_minutes', ['h' => heures($numdate), 'm' => minutes($numdate)]);
} } else {
else {
return _T('date_fmt_heures_minutes_court', ['h' => heures($numdate), 'm' => minutes($numdate)]); return _T('date_fmt_heures_minutes_court', ['h' => heures($numdate), 'm' => minutes($numdate)]);
} }
} }
...@@ -242,11 +241,11 @@ function heures_minutes($numdate, $forme = '') { ...@@ -242,11 +241,11 @@ function heures_minutes($numdate, $forme = '') {
* @param bool $forcer_jour * @param bool $forcer_jour
* True pour tout le temps renseigner un jour ou un mois (le 1) s'il * True pour tout le temps renseigner un jour ou un mois (le 1) s'il
* ne sont pas indiqués dans la date. * ne sont pas indiqués dans la date.
* @return array [année, mois, jour, heures, minutes, secondes] * @return array [année, mois, jour, heures, minutes, secondes] ou []
**/ **/
function recup_date($numdate, $forcer_jour = true) { function recup_date($numdate, $forcer_jour = true): array {
if (!$numdate) { if (!$numdate) {
return ''; return [];
} }
$heures = $minutes = $secondes = 0; $heures = $minutes = $secondes = 0;
if (preg_match('#([0-9]{1,2})/([0-9]{1,2})/([0-9]{4}|[0-9]{1,2})#', $numdate, $regs)) { if (preg_match('#([0-9]{1,2})/([0-9]{1,2})/([0-9]{4}|[0-9]{1,2})#', $numdate, $regs)) {
...@@ -295,6 +294,7 @@ function recup_date($numdate, $forcer_jour = true) { ...@@ -295,6 +294,7 @@ function recup_date($numdate, $forcer_jour = true) {
if ($annee or $mois or $jour or $heures or $minutes or $secondes) { if ($annee or $mois or $jour or $heures or $minutes or $secondes) {
return [$annee, $mois, $jour, $heures, $minutes, $secondes]; return [$annee, $mois, $jour, $heures, $minutes, $secondes];
} }
return [];
} }
/** /**
...@@ -320,7 +320,7 @@ function recup_date($numdate, $forcer_jour = true) { ...@@ -320,7 +320,7 @@ function recup_date($numdate, $forcer_jour = true) {
* @return string * @return string
* La date relative ou complète * La date relative ou complète
**/ **/
function date_interface($date, $decalage_maxi = 43200 /* 12*3600 */) { function date_interface($date, $decalage_maxi = 43200 /* 12*3600 */): string {
return sinon( return sinon(
date_relative($date, $decalage_maxi), date_relative($date, $decalage_maxi),
affdate_heure($date) affdate_heure($date)
...@@ -353,9 +353,13 @@ function date_interface($date, $decalage_maxi = 43200 /* 12*3600 */) { ...@@ -353,9 +353,13 @@ function date_interface($date, $decalage_maxi = 43200 /* 12*3600 */) {
* La date de référence pour le calcul relatif, par défaut la date actuelle * La date de référence pour le calcul relatif, par défaut la date actuelle
* @return string * @return string
* - La date relative * - La date relative
* - "" si un dépasse le décalage maximum est indiqué et dépassé. * - "" si pas de date ou si elle dépasse le décalage maximum indiqué.
**/ **/
function date_relative($date, $decalage_maxi = 0, $ref_date = null) { function date_relative($date, $decalage_maxi = 0, $ref_date = null): string {
if (!$date) {
return '';
}
if (is_null($ref_date)) { if (is_null($ref_date)) {
$ref_time = time(); $ref_time = time();
...@@ -363,9 +367,6 @@ function date_relative($date, $decalage_maxi = 0, $ref_date = null) { ...@@ -363,9 +367,6 @@ function date_relative($date, $decalage_maxi = 0, $ref_date = null) {
$ref_time = strtotime($ref_date); $ref_time = strtotime($ref_date);
} }
if (!$date) {
return;
}
$decal = date('U', $ref_time) - date('U', strtotime($date)); $decal = date('U', $ref_time) - date('U', strtotime($date));
if ($decalage_maxi and ($decal > $decalage_maxi or $decal < 0)) { if ($decalage_maxi and ($decal > $decalage_maxi or $decal < 0)) {
...@@ -457,12 +458,12 @@ function date_relative($date, $decalage_maxi = 0, $ref_date = null) { ...@@ -457,12 +458,12 @@ function date_relative($date, $decalage_maxi = 0, $ref_date = null) {
* Indiquer `0` (par défaut) pour ignorer. * Indiquer `0` (par défaut) pour ignorer.
* @return string * @return string
* - La date relative * - La date relative
* - "" si un dépasse le décalage maximum est indiqué et dépassé. * - "" si pas de date ou si elle dépasse le décalage maximum indiqué.
**/ **/
function date_relativecourt($date, $decalage_maxi = 0) { function date_relativecourt($date, $decalage_maxi = 0): string {
if (!$date) { if (!$date) {
return; return '';
} }
$decal = date('U', strtotime(date('Y-m-d')) - strtotime(date('Y-m-d', strtotime($date)))); $decal = date('U', strtotime(date('Y-m-d')) - strtotime(date('Y-m-d', strtotime($date))));
...@@ -500,15 +501,15 @@ function date_relativecourt($date, $decalage_maxi = 0) { ...@@ -500,15 +501,15 @@ function date_relativecourt($date, $decalage_maxi = 0) {
* - param: 'abbr' ou 'initiale' permet d'afficher les jours au format court ou initiale * - param: 'abbr' ou 'initiale' permet d'afficher les jours au format court ou initiale
* - annee_courante: Permet de definir l'annee de reference pour l'affichage des dates courtes * - annee_courante: Permet de definir l'annee de reference pour l'affichage des dates courtes
* *
* @return mixed|string * @return string
*/ */
function affdate_base($numdate, $vue, $options = []) { function affdate_base($numdate, $vue, $options = []): string {
if (is_string($options)) { if (is_string($options)) {
$options = ['param' => $options]; $options = ['param' => $options];
} }
$date_array = recup_date($numdate, false); $date_array = recup_date($numdate, false);
if (!$date_array) { if (!$date_array) {
return; return '';
} }
[$annee, $mois, $jour, $heures, $minutes, $secondes] = $date_array; [$annee, $mois, $jour, $heures, $minutes, $secondes] = $date_array;
...@@ -696,12 +697,12 @@ function affdate_base($numdate, $vue, $options = []) { ...@@ -696,12 +697,12 @@ function affdate_base($numdate, $vue, $options = []) {
* @return string * @return string
* Nom du jour * Nom du jour
**/ **/
function nom_jour($numdate, $forme = '') { function nom_jour($numdate, $forme = ''): string {
if (!($forme == 'abbr' or $forme == 'initiale')) { if (!($forme === 'abbr' or $forme === 'initiale')) {
$forme = ''; $forme = '';
} }
return affdate_base($numdate, 'nom_jour', $forme); return affdate_base($numdate, 'nom_jour', ['param' => $forme]);
} }
/** /**
...@@ -719,10 +720,10 @@ function nom_jour($numdate, $forme = '') { ...@@ -719,10 +720,10 @@ function nom_jour($numdate, $forme = '') {
* *
* @param string $numdate * @param string $numdate
* Une écriture de date * Une écriture de date
* @return int * @return string
* Numéro du jour * Numéro du jour
**/ **/
function jour($numdate) { function jour($numdate): string {
return affdate_base($numdate, 'jour'); return affdate_base($numdate, 'jour');
} }
...@@ -737,10 +738,10 @@ function jour($numdate) { ...@@ -737,10 +738,10 @@ function jour($numdate) {
* *
* @param string $numdate * @param string $numdate
* Une écriture de date * Une écriture de date
* @return int * @return string
* Numéro du jour * Numéro du jour
**/ **/
function journum($numdate) { function journum($numdate): string {
return affdate_base($numdate, 'journum'); return affdate_base($numdate, 'journum');
} }
...@@ -758,8 +759,8 @@ function journum($numdate) { ...@@ -758,8 +759,8 @@ function journum($numdate) {
* @return string * @return string
* Numéro du mois (sur 2 chiffres) * Numéro du mois (sur 2 chiffres)
**/ **/
function mois($numdate) { function mois($numdate): string {
return affdate_base($numdate, 'mois'); return affdate_base($numdate, 'mois');
} }
/** /**
...@@ -782,12 +783,12 @@ function mois($numdate) { ...@@ -782,12 +783,12 @@ function mois($numdate) {
* @return string * @return string
* Nom du mois * Nom du mois
**/ **/
function nom_mois($numdate, $forme = '') { function nom_mois($numdate, $forme = ''): string {
if (!($forme == 'abbr')) { if (!($forme === 'abbr')) {
$forme = ''; $forme = '';
} }
return affdate_base($numdate, 'nom_mois', $forme); return affdate_base($numdate, 'nom_mois', ['param' => $forme]);
} }
/** /**
...@@ -801,10 +802,10 @@ function nom_mois($numdate, $forme = '') { ...@@ -801,10 +802,10 @@ function nom_mois($numdate, $forme = '') {
* *
* @param string $numdate * @param string $numdate
* Une écriture de date * Une écriture de date
* @return int * @return string
* Année (sur 4 chiffres) * Année (sur 4 chiffres)
**/ **/
function annee($numdate) { function annee($numdate): string {
return affdate_base($numdate, 'annee'); return affdate_base($numdate, 'annee');
} }
...@@ -834,12 +835,12 @@ function annee($numdate) { ...@@ -834,12 +835,12 @@ function annee($numdate) {
* @return string * @return string
* La date formatée * La date formatée
**/ **/
function saison($numdate, $hemisphere = 'nord') { function saison($numdate, $hemisphere = 'nord'): string {
if ($hemisphere != 'sud') { if ($hemisphere !== 'sud') {
$hemisphere = 'nord'; $hemisphere = 'nord';
} }
return affdate_base($numdate, 'saison', $hemisphere); return affdate_base($numdate, 'saison', ['param' => $hemisphere]);
} }
...@@ -867,12 +868,12 @@ function saison($numdate, $hemisphere = 'nord') { ...@@ -867,12 +868,12 @@ function saison($numdate, $hemisphere = 'nord') {
* @return string * @return string
* La date formatée * La date formatée
**/ **/
function saison_annee($numdate, $hemisphere = 'nord') { function saison_annee($numdate, $hemisphere = 'nord'): string {
if ($hemisphere != 'sud') { if ($hemisphere !== 'sud') {
$hemisphere = 'nord'; $hemisphere = 'nord';
} }
return affdate_base($numdate, 'saison_annee', $hemisphere); return affdate_base($numdate, 'saison_annee', ['param' => $hemisphere]);
} }
/** /**
...@@ -899,7 +900,7 @@ function saison_annee($numdate, $hemisphere = 'nord') { ...@@ -899,7 +900,7 @@ function saison_annee($numdate, $hemisphere = 'nord') {
* @return string * @return string
* La date formatée * La date formatée
**/ **/
function affdate($numdate, $format = 'entier') { function affdate($numdate, $format = 'entier'): string {
return affdate_base($numdate, $format); return affdate_base($numdate, $format);
} }
...@@ -926,7 +927,7 @@ function affdate($numdate, $format = 'entier') { ...@@ -926,7 +927,7 @@ function affdate($numdate, $format = 'entier') {
* @return string * @return string
* La date formatée * La date formatée
**/ **/
function affdate_court($numdate, $annee_courante = null) { function affdate_court($numdate, $annee_courante = null): string {
return affdate_base($numdate, 'court', ['annee_courante' => $annee_courante]); return affdate_base($numdate, 'court', ['annee_courante' => $annee_courante]);
} }
...@@ -953,7 +954,7 @@ function affdate_court($numdate, $annee_courante = null) { ...@@ -953,7 +954,7 @@ function affdate_court($numdate, $annee_courante = null) {
* @return string * @return string
* La date formatée * La date formatée
**/ **/
function affdate_jourcourt($numdate, $annee_courante = null) { function affdate_jourcourt($numdate, $annee_courante = null): string {
return affdate_base($numdate, 'jourcourt', ['annee_courante' => $annee_courante]); return affdate_base($numdate, 'jourcourt', ['annee_courante' => $annee_courante]);
} }
...@@ -971,7 +972,7 @@ function affdate_jourcourt($numdate, $annee_courante = null) { ...@@ -971,7 +972,7 @@ function affdate_jourcourt($numdate, $annee_courante = null) {
* @return string * @return string
* La date formatée * La date formatée
**/ **/
function affdate_mois_annee($numdate) { function affdate_mois_annee($numdate): string {
return affdate_base($numdate, 'mois_annee'); return affdate_base($numdate, 'mois_annee');
} }
...@@ -987,12 +988,12 @@ function affdate_mois_annee($numdate) { ...@@ -987,12 +988,12 @@ function affdate_mois_annee($numdate) {
* @param string $numdate * @param string $numdate
* Une écriture de date * Une écriture de date
* @return string * @return string
* La date formatée * La date formatée, sinon ''
**/ **/
function affdate_heure($numdate) { function affdate_heure($numdate): string {
$date_array = recup_date($numdate); $date_array = recup_date($numdate);
if (!$date_array) { if (!$date_array) {
return; return '';
} }
[$annee, $mois, $jour, $heures, $minutes, $sec] = $date_array; [$annee, $mois, $jour, $heures, $minutes, $sec] = $date_array;
...@@ -1030,7 +1031,7 @@ function affdate_heure($numdate) { ...@@ -1030,7 +1031,7 @@ function affdate_heure($numdate) {
* @return string * @return string
* Texte de la date * Texte de la date
*/ */
function affdate_debut_fin($date_debut, $date_fin, $horaire = 'oui', $forme = '') { function affdate_debut_fin($date_debut, $date_fin, $horaire = 'oui', $forme = ''): string {
$abbr = $jour = ''; $abbr = $jour = '';
$affdate = 'affdate_jourcourt'; $affdate = 'affdate_jourcourt';
if (strpos($forme, 'abbr') !== false) { if (strpos($forme, 'abbr') !== false) {
...@@ -1161,7 +1162,7 @@ function affdate_debut_fin($date_debut, $date_fin, $horaire = 'oui', $forme = '' ...@@ -1161,7 +1162,7 @@ function affdate_debut_fin($date_debut, $date_fin, $horaire = 'oui', $forme = ''
* @return string * @return string
* Date au format ical * Date au format ical
**/ **/
function date_ical($date, $addminutes = 0) { function date_ical($date, $addminutes = 0): string {
[$heures, $minutes, $secondes] = recup_heure($date); [$heures, $minutes, $secondes] = recup_heure($date);
[$annee, $mois, $jour] = recup_date($date); [$annee, $mois, $jour] = recup_date($date);
...@@ -1188,7 +1189,7 @@ function date_ical($date, $addminutes = 0) { ...@@ -1188,7 +1189,7 @@ function date_ical($date, $addminutes = 0) {
* @return string * @return string
* La date formatée * La date formatée
**/ **/
function date_iso($date_heure) { function date_iso($date_heure): string {
[$annee, $mois, $jour] = recup_date($date_heure); [$annee, $mois, $jour] = recup_date($date_heure);
[$heures, $minutes, $secondes] = recup_heure($date_heure); [$heures, $minutes, $secondes] = recup_heure($date_heure);
$time = @mktime($heures, $minutes, $secondes, $mois, $jour, $annee); $time = @mktime($heures, $minutes, $secondes, $mois, $jour, $annee);
...@@ -1215,7 +1216,7 @@ function date_iso($date_heure) { ...@@ -1215,7 +1216,7 @@ function date_iso($date_heure) {
* @return string * @return string
* La date formatée * La date formatée
**/ **/
function date_822($date_heure) { function date_822($date_heure): string {
[$annee, $mois, $jour] = recup_date($date_heure); [$annee, $mois, $jour] = recup_date($date_heure);
[$heures, $minutes, $secondes] = recup_heure($date_heure); [$heures, $minutes, $secondes] = recup_heure($date_heure);
$time = mktime($heures, $minutes, $secondes, $mois, $jour, $annee); $time = mktime($heures, $minutes, $secondes, $mois, $jour, $annee);
...@@ -1235,7 +1236,7 @@ function date_822($date_heure) { ...@@ -1235,7 +1236,7 @@ function date_822($date_heure) {
* @return string * @return string
* Date au format `Ymd` * Date au format `Ymd`
**/ **/
function date_anneemoisjour($d) { function date_anneemoisjour($d): string {
if (!$d) { if (!$d) {
$d = date('Y-m-d'); $d = date('Y-m-d');
} }
...@@ -1255,7 +1256,7 @@ function date_anneemoisjour($d) { ...@@ -1255,7 +1256,7 @@ function date_anneemoisjour($d) {
* @return string * @return string
* Date au format `Ym` * Date au format `Ym`
**/ **/
function date_anneemois($d) { function date_anneemois($d): string {
if (!$d) { if (!$d) {
$d = date('Y-m-d'); $d = date('Y-m-d');
} }
...@@ -1275,7 +1276,7 @@ function date_anneemois($d) { ...@@ -1275,7 +1276,7 @@ function date_anneemois($d) {
* @return string * @return string
* Date au lundi de la même semaine au format `Ymd` * Date au lundi de la même semaine au format `Ymd`
**/ **/
function date_debut_semaine($annee, $mois, $jour) { function date_debut_semaine($annee, $mois, $jour): string {
$w_day = date('w', mktime(0, 0, 0, $mois, $jour, $annee)); $w_day = date('w', mktime(0, 0, 0, $mois, $jour, $annee));
if ($w_day == 0) { if ($w_day == 0) {
$w_day = 7; $w_day = 7;
...@@ -1297,7 +1298,7 @@ function date_debut_semaine($annee, $mois, $jour) { ...@@ -1297,7 +1298,7 @@ function date_debut_semaine($annee, $mois, $jour) {
* @return string * @return string
* Date au dimanche de la même semaine au format `Ymd` * Date au dimanche de la même semaine au format `Ymd`
**/ **/
function date_fin_semaine($annee, $mois, $jour) { function date_fin_semaine($annee, $mois, $jour): string {
$w_day = date('w', mktime(0, 0, 0, $mois, $jour, $annee)); $w_day = date('w', mktime(0, 0, 0, $mois, $jour, $annee));
if ($w_day == 0) { if ($w_day == 0) {
$w_day = 7; $w_day = 7;
......
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