Variable numérique avec leading zeroes

Bonjour,
Avec ce code dans un scenario

$sunastronomical_twilight_end=date("Hi", $sun_info["astronomical_twilight_end"]);     $scenario->setData('Soleil Coucher astronomique',$sunastronomical_twilight_end);

Je récupère une variable(Soleil Coucher astronomique) contenant la valeur 0037. Si je crée une nouvelle variable(VR_Ferme) = variable(Soleil Coucher astronomique) cette nouvelle variable contient 37 et non 0037.
Comme je m’en sers pour une action AT ça plante. Comment puis-je faire pour qu’elle contienne 0037 . J’ai essayé str_pad, substr mais rien ne fonctionne .
Merci de votre aide

Bonjour,

Tente voir en mettant des doubles quotes ?

$scenario->setData('Soleil Coucher astronomique',"$sunastronomical_twilight_end");

Merci @Bison
Non, ce bout de code fonctionne très bien et la variable contient bien 0037. C’est lorsque je la transfère dans une autre variable que cette nouvelle variable contient 37 au lieu de 0037

Bonjour,

Et?
Pas de problème d’utiliser « 37 » avec un at pour exécuter l’action à 00h37.
Jeedom va ajouter les 0 nécessaires devant pour avoir 4 chiffres

$scenario->setLog(str_pad(35, 4, "0", STR_PAD_LEFT));
[2024-07-14 10:58:11][SCENARIO] 0035

C’est normal c’est une sécurité sinon Php interprètera la valeur comme de l’hexadécimal car commence par 0

Cela ne fonctionne pas dans le testeur d’expression, mais c’est peut-être normal.

Merci de ta réponse. Je vais réessayer ce soir mais il ne semble bien avoir eu une erreur de type « Heure invalide » ou quelqu chose qui ressemble à ça. Je reviens vers toi après le test de ce soir. Sans doute ai-je mal interprèté l’erreur.

Merci. Mes compétences en PHP sont limitées, d’où ma question : si la variable émettrice est de type string pourquoi la variable réceptrce devient-elle int ?

Ça je sais pas j’ai pas tout ton code ça dépend ce que tu veux en faire mais en fonction Php va convertir. Pour rappel en php le typage est pas fort donc il fait des conversions dans tous les sens. C’est bien des fois et des fois non.

Le core ne veut pas.

Capture d’écran du 2024-07-14 12-46-53

Tu as tout à fait raison, j’ai dû me prendre les pieds dans le tapis et mal lire le message que je n’ai plus.
Merci

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.