Récupérer le nombre de jours restant avant l'expiration de l'abonnement aux services assistants vocaux

Bonjour,

Mon abonnement a expiré et je n’ai pas été alerté, il me semble que j’avais reçu un mail la dernière fois mais cette fois-ci je me suis retrouvé devant le fait accompli, j’ai donc écrit un bloc code pour être alerté.
Ce bloc code permet de récupérer la date d’expiration de l’abonnement et de mettre à jour une commande avec le nombre de jours restant avant l’expiration de l’abonnement, il ne vous reste plus qu’à configurer une ou plusieurs alertes sur cette commande.

$cmdId = 4; // ID de la commande à mettre à jour
$info = gsh::voiceAssistantInfo();
$voiceAssistantDate = new DateTime($info['limit']);
$scenario->setLog('$voiceAssistantDate : ' . $info['limit']);
$currentDate = new DateTime(date('Y-m-d'));
$scenario->setLog('$currentDate : ' . date('Y-m-d'));
$interval = $voiceAssistantDate->diff($currentDate);
$scenario->setLog('$interval->days : ' . $interval->days);
cmd::byId($cmdId)->event($interval->days);

Le bloc code est à programmer une fois par jour.
Je n’ai pas testé mais à priori pour Alexa il suffit de remplacer :

$info = gsh::voiceAssistantInfo();

Par :

$info = ash::voiceAssistantInfo();
3 « J'aime »

Bonjour,
J’ai mis en place ton code pour suivre mon abonnement plus précisément.
Je me suis permis de le bidouiller avec mes petits moyens pour avoir le rendu que je voulais.

$cmdId = 31701; // ID de la commande à mettre à jour
$cmdId2 = 31702; // ID de la commande à mettre à jour
$cmdId3 = 31703; // ID de la commande à mettre à jour
$info = ash::voiceAssistantInfo();
$voiceAssistantDate = new DateTime($info['limit']);
$scenario->setLog('$voiceAssistantDate : ' . $info['limit']);
$currentDate = new DateTime(date('Y-m-d'));
$scenario->setLog('$currentDate : ' . date('Y-m-d'));
$interval = $voiceAssistantDate->diff($currentDate);
$scenario->setLog('$interval->days : ' . $interval->days);
cmd::byId($cmdId)->event($interval->days);
cmd::byId($cmdId2)->event($info['limit']);
cmd::byId($cmdId3)->event(date('d-m-Y'));

Pas sur que c’est académique coté code mais ça me donne ce que voulais :
Capture d’écran 2024-01-22 à 09.24.11

La seule chose que je n’arrive pas à faire c’est modifier la date de fin d’abonnement que ton code ramène pour l’avoir au format d-m-Y (16-06-2024 au lieu de 2024–06-16)

Voilà ma question si tu passes par là.
Dans tout les cas, merci ce petit bout de code va me rendre service dans qq mois :ok_hand:

Bonjour @rennais35000,

Pour manipuler des dates en PHP il faut les convertir en timestamp (nombre de secondes écoulées depuis le 1er janvier 1970 00:00:00) :

cmd::byId($cmdId2)->event(date('d-m-Y', strtotime($info['limit'])));

Merci :ok_hand:
C’est plus beau comme ça.
Capture d’écran 2024-01-22 à 11.04.24

J’avais bien tenté de convertir avec

cmd::byId($cmdId2)->event(date('d-m-Y', $info['limit']));

mais sans le strtotime ça ne marchait pas bien évidemment :frowning:

Je vais mettre un scénario d’alerte maintenant, n’ayant jamais reçu de mail de rappel je n’ai jamais pensé à un bug, je pensais simplement que ce n’était pas géré. Il semblerait que ce soit réparé, mais il faut mieux assurer le coup plutôt que de fâcher Madame si elle ne peut plus ouvrir le portail en vocal.