Calcul de quantième

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');

image

image

probablement :wink:

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

image

1 « J'aime »

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 ?

1 « J'aime »

Ah j’avais pas saisi qu’on cherchait le numéro de jours :+1:, j’ai compris le nombre de jour. :man_facepalming:

1 « J'aime »

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 :

image

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.