Imbriquation de fonction maxbetween() date() strtotime()

Bonjour,

Quelqu’un pourrait-il m’orienter : est-ce que je fais une erreur de syntaxe ou bien est-ce que j’imbrique trop de fonction les une dans les autres svp ?

Dans l’idéal, Je voulais utiliser la commande suivante pour récupérer une valeur dans un test :

maxBetween(#[Garage][EDF][Consommation Mois]#, date('Y-m-01', strtotime('first day of last year')), date('Y-m-t', strtotime('last day of last year')))

Mais je n’ai pas de résultat :

Par contre si je récupère uniquement les délimiteurs :

date('Y-m-01', strtotime('first day of last year')), date('Y-m-t', strtotime('last day of last year'))

ça fonctionne :
image

Si j’utilise mes délimiteurs manuellement dans le maxBetween() j’obtiens effectivement la valeur recherchée :

maxBetween(#[Garage][EDF][Consommation Mois]#, 2023-02-01, 2023-02-28)

image

Donc est-ce que j’atteins une limitation en imbriquant tout cela dans une seule ligne ou faut-il que je modifie ma syntaxe ?

Merci de m’avoir lu !

Salut,

Un point à tenir compte

statisticsBetween depuis le début de l'année (first day of this year) - #2 par Phpvarious

Que j’ajoute l’heure de début ou non cela ne change pas, mais j’en prends note merci.

first day of january last year c’est ça qu’il faut retenir

Le mois n’étant pas défini, il va chercher le 1er jour de ce mois de cette année (2022-09-01 00:00:00), il faut donc utiliser first day of january this year

image

2022-02-01 et 2022-02-28 sont bien les dates dont j’ai besoin, lorsque je saisi manuellement ces dates, le maxbetween me renvoie bien la valeur que j’attends.

Mon problème se produit lorsque j’imbrique les date(xxxx, strtotime(xxxx)) de façon à ne faire la requête qu’en 1 ligne de commande, je n’obtiens pas de résultat.

Bonsoir,

Il n’est pas nécessaire de passer par la fonction date :

maxBetween(#[Garage][EDF][Consommation Mois]#, first day of last year, last day of last year')

devrait suffire.

Non, je ne pense pas car je souhaite délimiter au 1er jour du mois en cours de l’année précédente jusqu’au dernier jour de la fin du mois en cours de l’année précédente.
Aujourd’hui, comme on est en février, cela sera du 1er au 28 février 2023, et lorsque l’on sera en Mars cela sera du 1er au 31 Mars 2023 voyez-vous ?

image

donne bien 28 jours…

1 « J'aime »

Effectivement cela semble bien suffire !

Visiblement, il faut que j’assimile la logique des périodes car j’appréhendais les « first day of last year » et « last day of last year » comme 01-01-« n-1 » et 31-12-« n-1 »

Merci pour votre aide :+1: