Syntaxe de la fonction time_diff

Bonjour

Débutant jeedom, je rencontre un problème avec la fonction de calcul time_diff() que je souhaite inclure dans un virtuel.
Je cherche juste à calculer le nombre d’heure entre le moment actuel et le prochain 6:30 du matin
La doc indique bien quelques exemples et j’ai trouvé ce lien très utile sur le forum
https://www.php.net/manual/fr/datetime.formats.relative.php
mais je n’arrive pour le moment qu’à ce résultat :
time_diff(, next day 06:30:00,h)
… qui n’est pas satisfaisant puisqu’il donne la valeur attendue jusqu’à…minuit
Quelle serait la bonne syntaxe ?
Merci de votre aide :+1:

Ben la doc des scénarios Jeedom pour cette commande Jeedom dit :

time_diff(date1,date2[,format, round]) : Permet de connaître la différence entre deux dates (les dates doivent être au format AAAA/MM/JJ HH:MM:SS). Par défaut, la méthode retourne la différence en jour(s). Vous pouvez lui demander en secondes (s), minutes (m), heures (h). Exemple en secondes time_diff(2019-02-02 14:55:00,2019-02-25 14:55:00,s). La différence est retournée en absolu, sauf si vous spécifiez f (sf, mf, hf, df). Vous pouvez aussi utiliser dhms qui retournera pas exemple 7j 2h 5min 46s. Le paramètre round, optionnel, arrondi à x chiffres après la virgule (2 par défaut). Ex: time_diff(2020-02-21 20:55:28,2020-02-28 23:01:14,df, 4).

Donc pourquoi partir sur une autre doc ?!

1 « J'aime »

Bonjour,

time_diff(, next day 06:30:00,h)
me donne 16h actuellement à 14h.
En quoi ce résultat ne te convient pas ?

Car cette nuit après minuit le résultat retourné sera calculé par rapport au prochain jour, ca ne renverra pas 6 mais 30

La syntaxe de la commande Jeedom est

Je pense que c’est assez clair non ?

Ce qui signifie que la valeur recherchée ne peut donc pas être obtenue avec le calcul time_diff ?
Dans ce cas que me conseillez vous pour obtenir ce résultat sans passer par un scénario ?

Pour un débutant et ignare en php comme moi, ce qui n’est pas évident c’est qu’il existe plein de possibilités de syntaxe en php compatibles avec plein de fonctions jeedom et que ce n’est forcément explicité dans la doc (comme lastbetween par exemple). La doc renvoit juste aux expressions php.

Si tu ajoutes la fonction modulo 24, tu devrais avoir 6.

$a % $b 	Modulus 	Reste de $a divisé par $b. 

https://www.php.net/manual/fr/language.operators.arithmetic.php

Super astuce ! Simple et efficace mais il fallait y penser…
Merci beaucoup :+1:

time_diff(, next day 06:30:00,h)%24 en heures
ou
time_diff(, next day 06:30:00,m)%(24*60) en minutes

1 « J'aime »

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