Utilisateur:Ménestor/Date5
Version alternative, baptisée « Date5 », du modèle {{Utilisateur Wikipédia:Date4}}. Code : {{Utilisateur:Ménestor/Date5|année= |mois= |jour= }}
Date4, qui utilise le modèle {{Durée}}, ne se mettait pas correctement à jour une fois inséré sur ma PU : la durée affichée accumulait régulièrement plusieurs jours de retard sur la durée réelle avant de se corriger d'elle-même (si je ne faisais rien) ou d'être corrigée manuellement (après une modification quelconque de la page, le modèle affichait la bonne durée). J'ai pu également constater le problème sur les PUs d'autres utilisateurs où, en prévisualisant, je pouvais voir la bonne durée, alors que la durée affichée avait du retard.
Je pose la question au projet Boîte Utilisateur en 2022 ; on me suggère de ne pas mettre de zéro avant les chiffres, mais je pense que cela semblait fonctionner simplement parce que prévisualiser ou modifier la page remet les compteurs à zéro, et le problème est bien vite réapparu.
En cherchant plus tard dans l'historique de Date4, j'ai vu que la durée était obtenue jusqu'en 2021 avec un code propre au modèle, mais que celui-ci avait alors été remplacé par {{Durée}}. Cependant, le problème semble avoir existé bien avant : en 2013, XoLm56 (d · c) avait déjà remplacé toutes les fonctions {{#time: *}}
par des {{JULIANDAY.*|{{CURRENTJULIANDAY}}}}
« pour une mise à jour quotidienne correcte ». Il écrit sur la page de discussion :
« J’ai constaté en utilisant ce modèle sur ma page utilisateur qu’il ne mettait pas correctement à jour la durée d’inscription : elle se mettait bien à jour lors de la validation de la modif sur ma page, mais pas forcément ensuite les jours passant, selon un comportement curieux que je n’ai pas bien compris (ni trop cherché à comprendre d’ailleurs).
Observant que le modèle {{Utilisateur Wikipédia:Date}} fonctionnait lui correctement, et qu’il utilisait le modèle {{CURRENTJULIANDAY}} au lieu de la fonction #time:, j’ai remplacé tous les {{#time: *}} par des {{JULIANDAY.*|{{CURRENTJULIANDAY}}}} pour forcer le passage par {{CURRENTJULIANDAY}} dans toute évaluation du jour, mois, année courant. »
J'ai donc copié directement le code de Date4 sur une sous-page, remplacé {{Durée}} par les lignes dédiées à l'obtention de la durée telles qu'elles étaient entre 2013 et 2021 et fait un test comparatif des deux versions pendant 1 mois en mars 2024 :
- la version 2013-2021 (A) se mettait à jour sans faille sur ma sous-page de test comme sur ma PU ;
- la version actuelle (B) se mettait à jour sans faille sur ma sous-page de test, mais pas sur ma PU.
Est-ce que cela aurait quelque chose à voir avec les modèles {{BUdébut}}/{{BUfin}} ? Sur ma sous-page de test, Date4 était seule dans une section, tandis que sur ma PU, elle était dans une liste de boîtes encadrée par ces modèles.
En attendant de trouver la solution — il faudrait sans doute faire un test plus rigoureux —, j'ai choisi d'utiliser la version 2013-2021 sur ma PU, mais elle présentait le défaut d'afficher l'année, le mois ou le jour lorsqu'ils étaient égaux à 0 (par exemple : « depuis 3 ans, 0 mois et 8 jours » plutôt que « depuis 3 ans et 8 jours » ; « depuis 0 an, 6 mois et 14 jours » plutôt que « depuis 6 mois et 14 jours » ; etc.).
J'ai donc créé cette sous-page de modèle pour y mettre une version qui :
- n'affiche pas année, mois ou jour lorsqu'ils sont égaux à 0 ;
- inclut un texte alternatif « Je contribue à Wikipédia » plutôt que « Je suis inscrit sur Wikipédia » (rajouter
|alt=1
) ; - rend « moins d’un jour » lorsque la date rentrée est la date actuelle, comme le modèle {{Durée}}.
Compte tenu des {{JULIANDAY.*|{{CURRENTJULIANDAY}}}}
utilisés, l'heure de référence du modèle est équivalente à celle du serveur : la mise à jour quotidienne se fait donc avec 1 h (hiver) ou 2 h (été) de retard par rapport à l'heure française.