Calcule de temps
Résolu
arthezius
Messages postés
3756
Statut
Membre
-
arthezius Messages postés 3756 Statut Membre -
arthezius Messages postés 3756 Statut Membre -
Bonjour,
Je suis en train de chercher à faire un script de calcule de temps pour un jeu que je développe.
Je m'expliquer.
Supposons que le joueur acquière un moyen de gagner de l'argent virtuel à intervalle régulier.
J'ai fait en sorte que le script enregistre la date et si l'intervalle entre la date actuelle et celle enregistré, il va lui ajouter une valeur correspondant (l'argent).
Pour faire simple:
Il gagne par exemple 100€ par jours.
La date enregistré est le 10/04/2009.
On est le 14/04/2009.
Il gagne donc 4 x 100 = 400€.
Le calcule est fait avec la fonction mktime().
Toutefois, si je met la date sur 14/03/2009, alors que l'écart devrai être de 30 jours, il me trouve 30.9583333333.
Je vous met ici mon code:
Le script de calcule de temps proviens de la FAQ du site developpez.
Si quelqu'un à une idée à me suggérer pour arranger ça...
Je suis en train de chercher à faire un script de calcule de temps pour un jeu que je développe.
Je m'expliquer.
Supposons que le joueur acquière un moyen de gagner de l'argent virtuel à intervalle régulier.
J'ai fait en sorte que le script enregistre la date et si l'intervalle entre la date actuelle et celle enregistré, il va lui ajouter une valeur correspondant (l'argent).
Pour faire simple:
Il gagne par exemple 100€ par jours.
La date enregistré est le 10/04/2009.
On est le 14/04/2009.
Il gagne donc 4 x 100 = 400€.
Le calcule est fait avec la fonction mktime().
Toutefois, si je met la date sur 14/03/2009, alors que l'écart devrai être de 30 jours, il me trouve 30.9583333333.
Je vous met ici mon code:
<?php
echo'<title>Test - temps</title>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<style>
<!--
p{margin:0px;}
-->
</style>';
require('id_connexion.php');
$sql = 'SELECT * FROM temps WHERE id="1"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
if($data['date'] == date('Y-m-d')){echo'<p>Déjà fait !</p>';}
if($data['date'] == '0000-00-00')
{$date = date('Y-m-d');
$sql = 'UPDATE temps SET date="'.$date.'" WHERE id="1"';
if(mysql_query($sql)){echo'<p>Date actualisé</p>';}
}
else{
//Définition des date au format année-mois-jour
$date1 = $data['date'];
$date2 = date('Y-m-d');
//Extraction des données
list($annee1, $mois1, $jour1) = explode('-', $date1);
list($annee2, $mois2, $jour2) = explode('-', $date2);
//Calcul des timestamp
$timestamp1 = mktime(0,0,0,$mois1,$jour1,$annee1);
$timestamp2 = mktime(0,0,0,$mois2,$jour2,$annee2);
$ecart = abs($timestamp2 - $timestamp1)/86400; //Affichage du nombre de jour : 27
echo'<p>Ecart: '.$ecart.'</p>';
if($ecart >= '1')
{
$valeur = $data['valeur'] + $ecart;
$sql = 'UPDATE temps SET valeur="'.$valeur.'" WHERE id="1"';
if(mysql_query($sql)){echo'<p>Valeur actualisé</p>';}
$date = date('Y-m-d');
$sql = 'UPDATE temps SET date="'.$date.'" WHERE id="1"';
if(mysql_query($sql)){echo'<p>Date actualisé</p>
<br/>
<p>Ok. Valeur = '.$valeur.'</p>';}
}
}
?>
Le script de calcule de temps proviens de la FAQ du site developpez.
Si quelqu'un à une idée à me suggérer pour arranger ça...
A voir également:
- Calcule de temps
- Renommer plusieurs fichiers en même temps - Guide
- Combien de temps reste une story sur facebook - Guide
- Sablier snap temps ✓ - Forum Snapchat
- Temps pour soi iphone - Guide
- Family link le temps ne correspondent pas - Forum Contrôle parental
2 réponses
bonsoir,
c'est normale si ça compte à partir des secondes...
arrondi avec floor()
https://www.php.net/manual/fr/function.floor.php
c'est normale si ça compte à partir des secondes...
arrondi avec floor()
https://www.php.net/manual/fr/function.floor.php