diff --git a/ecrire/inc/filtres_dates.php b/ecrire/inc/filtres_dates.php
index 656b1f2836db754f7343fb6f01ee1556d6582490..f671f00c6fb1bd79cf26cf3a200d8fcfe2756a7c 100644
--- a/ecrire/inc/filtres_dates.php
+++ b/ecrire/inc/filtres_dates.php
@@ -62,7 +62,7 @@ function extraire_date($texte): string {
  *     - une date au format datetime
  *     - 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);
 	if ($date) {
 		if (preg_match('/^[0-9]{8,10}$/', $date)) {
@@ -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)
  *     - Une chaine vide
  **/
-function vider_date($letexte, $verif_format_date = false) {
+function vider_date($letexte, $verif_format_date = false): string {
 	if (
 		!$verif_format_date
 		or (in_array(strlen($letexte), [10,19]) and
@@ -127,7 +127,7 @@ function vider_date($letexte, $verif_format_date = false) {
  *     - [heures, minutes, secondes] si horaire trouvée
  *     - [0, 0, 0] sinon
  **/
-function recup_heure($date) {
+function recup_heure($date): array {
 
 	static $d = [0, 0, 0];
 	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) {
  * @uses recup_heure()
  *
  * @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;
 	$date_array = recup_heure($numdate);
 	if ($date_array) {
@@ -167,9 +167,9 @@ function heures($numdate) {
  * @uses recup_heure()
  *
  * @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;
 	$date_array = recup_heure($numdate);
 	if ($date_array) {
@@ -187,9 +187,9 @@ function minutes($numdate) {
  * @uses recup_heure()
  *
  * @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;
 	$date_array = recup_heure($numdate);
 	if ($date_array) {
@@ -214,11 +214,10 @@ function secondes($numdate) {
  *	- si 'abbr' ne précise pas l'unité des minutes : 12h10
  * @return string L'heure formatée dans la langue en cours.
  **/
-function heures_minutes($numdate, $forme = '') {
-	if ($forme != 'abbr') {
+function heures_minutes($numdate, $forme = ''): string {
+	if ($forme !== 'abbr') {
 		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)]);
 	}
 }
@@ -242,11 +241,11 @@ function heures_minutes($numdate, $forme = '') {
  * @param bool $forcer_jour
  *     True pour tout le temps renseigner un jour ou un mois (le 1) s'il
  *     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) {
-		return '';
+		return [];
 	}
 	$heures = $minutes = $secondes = 0;
 	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) {
 	if ($annee or $mois or $jour or $heures or $minutes or $secondes) {
 		return [$annee, $mois, $jour, $heures, $minutes, $secondes];
 	}
+	return [];
 }
 
 /**
@@ -320,7 +320,7 @@ function recup_date($numdate, $forcer_jour = true) {
  * @return string
  *     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(
 		date_relative($date, $decalage_maxi),
 		affdate_heure($date)
@@ -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
  * @return string
  *     - 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)) {
 		$ref_time = time();
@@ -363,9 +367,6 @@ function date_relative($date, $decalage_maxi = 0, $ref_date = null) {
 		$ref_time = strtotime($ref_date);
 	}
 
-	if (!$date) {
-		return;
-	}
 	$decal = date('U', $ref_time) - date('U', strtotime($date));
 
 	if ($decalage_maxi and ($decal > $decalage_maxi or $decal < 0)) {
@@ -457,12 +458,12 @@ function date_relative($date, $decalage_maxi = 0, $ref_date = null) {
  *     Indiquer `0` (par défaut) pour ignorer.
  * @return string
  *     - 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) {
-		return;
+		return '';
 	}
 	$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) {
  *  - 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
  *
- * @return mixed|string
+ * @return string
  */
-function affdate_base($numdate, $vue, $options = []) {
+function affdate_base($numdate, $vue, $options = []): string {
 	if (is_string($options)) {
 		$options = ['param' => $options];
 	}
 	$date_array = recup_date($numdate, false);
 	if (!$date_array) {
-		return;
+		return '';
 	}
 	[$annee, $mois, $jour, $heures, $minutes, $secondes] = $date_array;
 
@@ -696,12 +697,12 @@ function affdate_base($numdate, $vue, $options = []) {
  * @return string
  *     Nom du jour
  **/
-function nom_jour($numdate, $forme = '') {
-	if (!($forme == 'abbr' or $forme == 'initiale')) {
+function nom_jour($numdate, $forme = ''): string {
+	if (!($forme === 'abbr' or $forme === 'initiale')) {
 		$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 = '') {
  *
  * @param string $numdate
  *     Une écriture de date
- * @return int
+ * @return string
  *     Numéro du jour
  **/
-function jour($numdate) {
+function jour($numdate): string {
 	return affdate_base($numdate, 'jour');
 }
 
@@ -737,10 +738,10 @@ function jour($numdate) {
  *
  * @param string $numdate
  *     Une écriture de date
- * @return int
+ * @return string
  *     Numéro du jour
  **/
-function journum($numdate) {
+function journum($numdate): string {
 	return affdate_base($numdate, 'journum');
 }
 
@@ -758,8 +759,8 @@ function journum($numdate) {
  * @return string
  *     Numéro du mois (sur 2 chiffres)
  **/
-function mois($numdate) {
-	return affdate_base($numdate, 'mois');
+function mois($numdate): string {
+	return  affdate_base($numdate, 'mois');
 }
 
 /**
@@ -782,12 +783,12 @@ function mois($numdate) {
  * @return string
  *     Nom du mois
  **/
-function nom_mois($numdate, $forme = '') {
-	if (!($forme == 'abbr')) {
+function nom_mois($numdate, $forme = ''): string {
+	if (!($forme === 'abbr')) {
 		$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 = '') {
  *
  * @param string $numdate
  *     Une écriture de date
- * @return int
+ * @return string
  *     Année (sur 4 chiffres)
  **/
-function annee($numdate) {
+function annee($numdate): string {
 	return affdate_base($numdate, 'annee');
 }
 
@@ -834,12 +835,12 @@ function annee($numdate) {
  * @return string
  *     La date formatée
  **/
-function saison($numdate, $hemisphere = 'nord') {
-	if ($hemisphere != 'sud') {
+function saison($numdate, $hemisphere = 'nord'): string {
+	if ($hemisphere !== 'sud') {
 		$hemisphere = 'nord';
 	}
 
-	return affdate_base($numdate, 'saison', $hemisphere);
+	return affdate_base($numdate, 'saison', ['param' => $hemisphere]);
 }
 
 
@@ -867,12 +868,12 @@ function saison($numdate, $hemisphere = 'nord') {
  * @return string
  *     La date formatée
  **/
-function saison_annee($numdate, $hemisphere = 'nord') {
-	if ($hemisphere != 'sud') {
+function saison_annee($numdate, $hemisphere = 'nord'): string {
+	if ($hemisphere !== 'sud') {
 		$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') {
  * @return string
  *     La date formatée
  **/
-function affdate($numdate, $format = 'entier') {
+function affdate($numdate, $format = 'entier'): string {
 	return affdate_base($numdate, $format);
 }
 
@@ -926,7 +927,7 @@ function affdate($numdate, $format = 'entier') {
  * @return string
  *     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]);
 }
 
@@ -953,7 +954,7 @@ function affdate_court($numdate, $annee_courante = null) {
  * @return string
  *     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]);
 }
 
@@ -971,7 +972,7 @@ function affdate_jourcourt($numdate, $annee_courante = null) {
  * @return string
  *     La date formatée
  **/
-function affdate_mois_annee($numdate) {
+function affdate_mois_annee($numdate): string {
 	return affdate_base($numdate, 'mois_annee');
 }
 
@@ -987,12 +988,12 @@ function affdate_mois_annee($numdate) {
  * @param string $numdate
  *     Une écriture de date
  * @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);
 	if (!$date_array) {
-		return;
+		return '';
 	}
 	[$annee, $mois, $jour, $heures, $minutes, $sec] = $date_array;
 
@@ -1030,7 +1031,7 @@ function affdate_heure($numdate) {
  * @return string
  *     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 = '';
 	$affdate = 'affdate_jourcourt';
 	if (strpos($forme, 'abbr') !== false) {
@@ -1161,7 +1162,7 @@ function affdate_debut_fin($date_debut, $date_fin, $horaire = 'oui', $forme = ''
  * @return string
  *     Date au format ical
  **/
-function date_ical($date, $addminutes = 0) {
+function date_ical($date, $addminutes = 0): string {
 	[$heures, $minutes, $secondes] = recup_heure($date);
 	[$annee, $mois, $jour] = recup_date($date);
 
@@ -1188,7 +1189,7 @@ function date_ical($date, $addminutes = 0) {
  * @return string
  *     La date formatée
  **/
-function date_iso($date_heure) {
+function date_iso($date_heure): string {
 	[$annee, $mois, $jour] = recup_date($date_heure);
 	[$heures, $minutes, $secondes] = recup_heure($date_heure);
 	$time = @mktime($heures, $minutes, $secondes, $mois, $jour, $annee);
@@ -1215,7 +1216,7 @@ function date_iso($date_heure) {
  * @return string
  *     La date formatée
  **/
-function date_822($date_heure) {
+function date_822($date_heure): string {
 	[$annee, $mois, $jour] = recup_date($date_heure);
 	[$heures, $minutes, $secondes] = recup_heure($date_heure);
 	$time = mktime($heures, $minutes, $secondes, $mois, $jour, $annee);
@@ -1235,7 +1236,7 @@ function date_822($date_heure) {
  * @return string
  *     Date au format `Ymd`
  **/
-function date_anneemoisjour($d) {
+function date_anneemoisjour($d): string {
 	if (!$d) {
 		$d = date('Y-m-d');
 	}
@@ -1255,7 +1256,7 @@ function date_anneemoisjour($d) {
  * @return string
  *     Date au format `Ym`
  **/
-function date_anneemois($d) {
+function date_anneemois($d): string {
 	if (!$d) {
 		$d = date('Y-m-d');
 	}
@@ -1275,7 +1276,7 @@ function date_anneemois($d) {
  * @return string
  *     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));
 	if ($w_day == 0) {
 		$w_day = 7;
@@ -1297,7 +1298,7 @@ function date_debut_semaine($annee, $mois, $jour) {
  * @return string
  *     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));
 	if ($w_day == 0) {
 		$w_day = 7;