Transformer proprement format heure: 07 h 36 -> 0736

Bonjour,

je récupère dans mon scénario l’heure via une interaction google home dans le tag #heure_reveil#.
L’heure arrive sous la forme 07 h 36. Or la commande « A » accepte uniquement 0736.
J’ai fait ça, ça fonctionne mais j’ai l’impression que c’est pas le plus « propre ».

Comment puis je m’améliorer ?
(j’ai tenté DateTime::createFromFormat mais je n’arrive pas à me débarrasser des espaces entre 07 et 36 même avec un str_replace).

Bonsoir,
De mémoire, il me semble que la fonction FormatTime devrait faire l’affaire.

Édit: erreur c’est la fonction gmdate qu’il faut utiliser

Non, c’est l’inverse formatTime rajoute le h

Oui je m’en suis rappelé, il y a longtemps que je n’ai plus codé, ça s’oublie vite ce genre de chose

gmdate non plus il faut un timestamp en secondes.
https://www.php.net/manual/fr/function.gmdate.php

Avec les 2 substr, ça me parait correct si l’heure et les minutes sont toujours sur 2 chiffres.

Ouh là, il faut que je me couche, j’ai pas les idées claires.
Bonne soirée

1 « J'aime »

Bonjour,
On remplace les h par rien
On remplace les espaces par rien

str_replace(" ","",str_replace("h","","07 h 36"))

Bonne fin de nuit Mrs et Bonne journée :wink:

1 « J'aime »

salut,

Pour utiliser toutes les options de str_replace :

str_replace(array(" ","h"), "", " 07 h 36 ");

Ou plus simplement :

str_replace(" h ","","22 h 43");

Non ? Il indique un espace h un espace dans son message…

Je sais pas dans le scenario …
Mais le testeur d’expression n’aime pas le remplacement des espaces …

en effet… moi je pensais php sorry :wink:

le tiens va pas non plus :
image

Oui aussi …
faut tester en vrais dans le scenario voir si ça passe le testeur enlève bien les H mais il a l’air capricieux avec les espaces …

Edite : pareil dans les scenarios et encore pire avec le array

@kiboost une affaire de str_replace avec espace pour toi !

Merci pour vos réponses.

c’est effectivement ce que j’avais fait au début, ça permettait de gérer toutes les formes de chaine (avec ou sans espace).
Mais voilà vous avez compris mon problème, impossible de supprimer les espaces aussi bien dans le testeur que dans le scénario.

Je pense que la solution pour l’instant est de passer par un bloc code …

je me le tenterai peut être avec un bloc code en effet. Merci pour ces commandes en tout cas.

Du coup ma solution « pas propre » n’est pas si mal finalement … :slight_smile:

substr(#heure_reveil#,0,2)substr(#heure_reveil#,-2,2)
2 « J'aime »

Salut tous,

peut être avec un preg_replace (j’ :heart: les reg exp) : preg_replace("/[^0-9]/","","07 h 36")

me sort

------------------------------------
[2021-02-12 11:20:34][SCENARIO] Start : Scenario lance manuellement.
[2021-02-12 11:20:34][SCENARIO] Exécution du sous-élément de type [action] : action
[2021-02-12 11:20:34][SCENARIO] Mise à jour du tag #hh# => 07 h 36
[2021-02-12 11:20:34][SCENARIO] Mise à jour du tag #hhTest# => 736
[2021-02-12 11:20:34][SCENARIO] Log : 736
[2021-02-12 11:20:34][SCENARIO] Fin correcte du scénario
1 « J'aime »

Bien !
:+1: Au moins celui la il fonctionne dans le testeur d’expressions

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