Bonjour,
J’ai besoin pour des moyennes de consommation du quantième (numéro de jour dans l’année pas dans la semaine).
Je faisais des calculs via un time_diff mais j’ai observé des choses bizarres dans les données.
En essayant de comprendre via le testeur d’expression, j’observe des choses étranges :
time_diff(2024-01-01,today) = 91 le quantième est 93 je peux faire +2
time_diff(2024-01-01,2024-04-02) = 91 cohérent
time_diff(2024-01-01,2024-04-01) = 90 cohérent
time_diff(2024-01-01,2024-03-31) = 90 problème
time_diff(2024-01-01,2024-03-30) = 89
Une idée du problème, PEBKAC ?
Merci
Bonjour,
Vos résultats sont erronés, il ne faut pas calculer cela manuellement, le format « z » donne l’info: PHP: date - Manual
date('z', strtotime('2024-04-01');


probablement ![]()
edit: ca fonctionne aussi avec un « texte »:
date('z', strtotime('today');
date('z', strtotime('last saturday');
Salut,
En complément de Mips, l’explication la plus probable est ici :
Du coup en utilisant ta méthode de différence il faut le faire en UTC et ajouter 1 pour tomber sur le vrai numéro du jour (parce qu’entre le 1er janvier et le 1er janvier il y a 0 jour mais c’est le 1er de l’année) :
time_diff(2024-01-01 UTC ,today UTC)+1

Hello,
@Bison , Je pense pas qu’il y a besoin de rajouter +1 !
du 2024-01-01 01:00:00 au 2024-04-02 02:00:00 = 92 jours
Pourquoi ?
Si on veut le numéro du jour dans l’année tu ferais comment puisque time_diff(2024-01-01 UTC ,2024-01-01 UTC) donne 0 ?
Ah j’avais pas saisi qu’on cherchait le numéro de jours
, j’ai compris le nombre de jour. ![]()
Merci Mips pour la solution fonctionnelle. Il faut ajouter +1.
Bison, j’avais déjà admis dans mon post la possibilité de corriger de +1, je le faisais avant.
Mais la, le résultat des calculs est étrange avec le même résultat pour 31/03 et 01/04.
C’est le même résultat car le core fait un arrondi à l’entier inférieur, car réellement le résultat :

comme indiquer par Bison, les décimale c’est lié au changement en heure d’été.
Merci à tous.
Une belle troncature…
J’avais le changement d’heure en tête et il y avait des chances que ce soit l’origine mais ça me donnait pas la solution.
Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.
