Une variable qui se vide en 48 heures
Résolu
big-boss-taha
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
big-boss-taha Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
big-boss-taha Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Alors voila, j'ai une variable dont ça valeur est 100 et se nomme "vie"
Je veux que cette variable se vide petite à petit jusqu'à 0 en 48 heures !
D'abord voici se que je voulais faire ;
$vie = $donnees['sante'];
$date = $donnees['date_vie'];
$date = new DateTime('2012-09-01 12:00:00');
$dateNow = new \DateTime('now');
$interval = $date->diff($dateNow);
$interval = $interval->format('s');
$interval/1728;
$vie = -1 / $interval;
Que dois-je aouté de plus pour faire perdre -1 de vie ! Parce que se code de marche pas !
Merci à vous !
Alors voila, j'ai une variable dont ça valeur est 100 et se nomme "vie"
Je veux que cette variable se vide petite à petit jusqu'à 0 en 48 heures !
D'abord voici se que je voulais faire ;
$vie = $donnees['sante'];
$date = $donnees['date_vie'];
$date = new DateTime('2012-09-01 12:00:00');
$dateNow = new \DateTime('now');
$interval = $date->diff($dateNow);
$interval = $interval->format('s');
$interval/1728;
$vie = -1 / $interval;
Que dois-je aouté de plus pour faire perdre -1 de vie ! Parce que se code de marche pas !
Merci à vous !
A voir également:
- Une variable qui se vide en 48 heures
- Comment supprimer une page vide sur word - Guide
- Caractere vide - Guide
- Formate pour taxer client frigo vide - Forum Vos droits sur internet
- Coeur vide ✓ - Forum Réseaux sociaux
- Code pour écrire un coeur VIDE : alt+??? ✓ - Forum Mail
4 réponses
Salut,
La réponse t'as déjà été donné sur un autre forum ;)
Je répète donc la solution proposé par Genova :
Tu commence par déterminer combien de vie perdue pour 1 seconde :
Lors de la prochaine connexion, tu regardes combien de différence en seconde il y a entre le moment présent et la dernière date d'enregistrement, puis tu multiplies ce nombre de secondes par le cout de vie par seconde :
Bonne journée
La réponse t'as déjà été donné sur un autre forum ;)
Je répète donc la solution proposé par Genova :
Tu commence par déterminer combien de vie perdue pour 1 seconde :
$tempsMax = 48 * 3600; // 48 heures en secondes
$vieParSeconde = 100 / $tempsMax; // Tu divises ta vie (100) par 48h (en secondes) afin de savoir combien de vie disparait par seconde
Lors de la prochaine connexion, tu regardes combien de différence en seconde il y a entre le moment présent et la dernière date d'enregistrement, puis tu multiplies ce nombre de secondes par le cout de vie par seconde :
$dernierTemps = ...; // Ici tu dois récupérer la dernière date de mise à jour
$tempsActuel = time(); // Moment actuel
$tempsEcoule = $tempsActuel - $dernierTemps; // Nombre de secondes écoulées depuis la dernière mise à jour
$viePerdue = $vieParSeconde * $tempsEcoule;
$vie = $vie - $viePerdue;
Bonne journée
Ouais mddr, j'ai pensé ne jamais avoir la réponse sur l'autre forum !
Bon, euuuh je sais maintenant comment faire mais j'ai eu certains problèmes !
Je pense que je suis tout prés du but, d'abord voici le code que j'utilise :
$date = new DateTime('2012-09-01 12:00:00');
$dateNow = new \DateTime('now');
$interval = $date->diff($dateNow);
$interval = $interval->format('%s seconds');
$interval/1728;
$vie = $vie - $interval/1728;
print "<br>vie: $vie <br>";
print "<br>interval: $interval <br>";
Le résultat :
vie: 99.970486111111
interval: 51 seconds
Puis la vie commence à se vider petite à petit ! Mais quand le temps et à 60 secondes, puis reviens à 0, la vie reviens à 100 aussi et redescend petite à petit !! Ainsi de suite !
Aussi, si j'utilise :
<?php
{
echo "".$donnees['sante']."";
}
?>
Pour afficher la variable au membre, ça reste 100 même si en print "<br>vie: $vie <br>"; deviens 99 ou moins ! Même aussi sur la bd ça change pas :'(
Merci d'avance !
Bon, euuuh je sais maintenant comment faire mais j'ai eu certains problèmes !
Je pense que je suis tout prés du but, d'abord voici le code que j'utilise :
$date = new DateTime('2012-09-01 12:00:00');
$dateNow = new \DateTime('now');
$interval = $date->diff($dateNow);
$interval = $interval->format('%s seconds');
$interval/1728;
$vie = $vie - $interval/1728;
print "<br>vie: $vie <br>";
print "<br>interval: $interval <br>";
Le résultat :
vie: 99.970486111111
interval: 51 seconds
Puis la vie commence à se vider petite à petit ! Mais quand le temps et à 60 secondes, puis reviens à 0, la vie reviens à 100 aussi et redescend petite à petit !! Ainsi de suite !
Aussi, si j'utilise :
<?php
{
echo "".$donnees['sante']."";
}
?>
Pour afficher la variable au membre, ça reste 100 même si en print "<br>vie: $vie <br>"; deviens 99 ou moins ! Même aussi sur la bd ça change pas :'(
Merci d'avance !
Tu pensais ne jamais avoir la réponse mais as tu vérifié ??
Tu as encore eu une réponse ce matin concernant ce deuxième message :
tu dois enregistrer la date initiale dans un fichier ou en base de données.
Premièrement la 5ème ligne de ton code ne sert à rien :
Le calcul de ton intervalle n'est pas correct, voici un exemple de correction :
On arrive donc à environ -20 000 point de vie à l'heure actuelle, c'est normal puisque le délais de 48h est largement dépassé (2012-09-01, soit plus d'un an).
Ici la date initiale (2012-09-01) est codé en dur. Comme il t'a été répondu sur l'autre forum, il faudrait définir cette date en fonction de la première connexion du visiteur et l'enregistrer dans un fichier ou en base de données.
Bonne journée
Tu as encore eu une réponse ce matin concernant ce deuxième message :
tu dois enregistrer la date initiale dans un fichier ou en base de données.
Premièrement la 5ème ligne de ton code ne sert à rien :
$interval/1728;Tu ne récupère pas le résultat de ton opération, tu peux donc supprimer cette ligne.
Le calcul de ton intervalle n'est pas correct, voici un exemple de correction :
$vie = 100;
$date = new DateTime('2012-09-01 12:00:00');
$dateNow = new DateTime('now');
$interval = $dateNow->getTimestamp() - $date->getTimestamp();
$vie = $vie - $interval/1728;
print "<br>vie: $vie <br>";
print "<br>interval: $interval <br>";
On arrive donc à environ -20 000 point de vie à l'heure actuelle, c'est normal puisque le délais de 48h est largement dépassé (2012-09-01, soit plus d'un an).
Ici la date initiale (2012-09-01) est codé en dur. Comme il t'a été répondu sur l'autre forum, il faudrait définir cette date en fonction de la première connexion du visiteur et l'enregistrer dans un fichier ou en base de données.
Bonne journée