Différence entre 'first day of this month' et 'first day of january' en janvier

Bonjour à tous

Je mesure le temps d’utilisation d’un radiateur par la formule suivante
durationBetween(#[Pièce][Heater][Chauffage]#,1,first day of this month,now)
ou Chauffage est l’état d’un interrupteur On/Off.

Avec ‹ first day of this month ›, (pour la consommation du mois) j’obtiens 3909
Avec ‹ first day of january ›, (pour la consommation depuis le début de l’année) j’obtiens 3967
Avec ‹ 2020-01-01 00:00:00 › J’obtiens 3967 = ‹ first day of january ›

Pourquoi cette différence et que faut-il modifier pour obtenir la même valeur au mois de janvier ?
Merci pour votre aide

1 « J'aime »

Bonjour,

Avec first day of january, les heures minutes secondes sont initialisées à 00:00:00

date('d M Y H:i:s', strtotime('first day of january'));
retourne 01 Jan 2020 00:00:00

Avec first day of this month, les heures minutes secondes sont l’heure actuelle

date('d M Y H:i:s', strtotime('first day of this month'));
retourne: 01 Jan 2020 16:42:35

Pour avoir les heures, min, sec. initialisées, il faut ajouter midnight à first day of this month

date('d M Y H:i:s', strtotime('first day of this month midnight'));
retourne : 01 Jan 2020 00:00:00

NB: strtotime est la fonction php utilisée dans durationBetween pour traduire une date texte en timestamp unix

5 « J'aime »

Très logique, mais je n’y avais pas pensé.
Merci

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.