Se connecter avec
S'enregistrer | Connectez-vous

duree et temps

Dernière réponse : dans Programmation

Bonsoir tout le monde

Je suis entrain de faire un site, enfin plutôt un jeu, dont le but et d'acheter un pot, tu terreau etc... et de faire pousser des plantes, la personne dispose d'une somme d'argent limité auquel elle doit bien dépenser pour l'achat du matériel et des plantes.

ca c'est déjà fait, la plante doit pousser, quand elle a
planter les graines, seulement voici le probleme :

La personne clique sur un lien pour planter, c'est automatique, une date s'enregistre dans la table de l'utilisateur, ensuite, selon la temperature, l'éclairage, l'eau, et le terreau (dose de tout ca), la plante pousse plus vite, mais surtout, j'aimerai que la date s'affiche pour savoir depuis combien de temps elles ont étaient plantés et de combien de centimétres elles ont poussées, et ca je ne voit pas du tout comment faire

Donc si des personnes peuvent m'aider pour faire ceci, je leurs seraient très reconnaissant !

Merci

Autres pages sur : duree temps

Lassé par la pub ? Créez un compte

faut que tu définisse un algorithme pour déterminer le nombre de cm en fonction de la somme le lumière, d'eau, etc. [:spamafote]
définit une fonction avec en entré la date de plantage, la somme de lumière reçue, d'eau, ...
'fin si tu veux être subtile, faudra faire un truc assez costaud, genre ne prendre en compte la lumière qu'à partir du moment où la plante a atteind telle taille, puis ponderer l'éclairage instantanné avec la taille de la plante avant de sommer le tout pour déterminer la pousse entre deux instants, ...
c'est un boulot de logique, définis toutes les regles que cela doit respecter pour arriver à un résultat cohérent, puis met le en forme.

THEniluje a écritfaut que tu définisse un algorithme pour déterminer le nombre de cm en fonction de la somme le lumière, d'eau, etc. [:spamafote]
définit une fonction avec en entré la date de plantage, la somme de lumière reçue, d'eau, ...
'fin si tu veux être subtile, faudra faire un truc assez costaud, genre ne prendre en compte la lumière qu'à partir du moment où la plante a atteind telle taille, puis ponderer l'éclairage instantanné avec la taille de la plante avant de sommer le tout pour déterminer la pousse entre deux instants, ...
c'est un boulot de logique, définis toutes les regles que cela doit respecter pour arriver à un résultat cohérent, puis met le en forme.
merci de ta réponse

mais si pour commencer, je prend que les centimetres pour les mettres en fonction de la date de plantation, comment je peut faire ? car tu me l'a expliquer en haut, mais franchement, j'ai chercher pendant des heures, et je n'y arrive pas du tout, le temps, durée etc... ce n'est pas mon fort et je n'ai jamais réussi a controler ca :D 

function nb_cm($duree)
{
return $duree*5;
}

et quand tu fait : nb_cm(2); tu obtient 10, qui est le nombre de cm.

Bon, voila, t'as la méthode, plus qu'à trouver le fonction que tu va réellement mettre, parcequ'un "*5" c'est pas terrible :D 
pense plutot à une fonction définie par partie, au début nulle, puis parabolique, puis linéaire. ou un truc du genre.

THEniluje a écritfunction nb_cm($duree)
{
return $duree*5;
}

et quand tu fait : nb_cm(2); tu obtient 10, qui est le nombre de cm.

Bon, voila, t'as la méthode, plus qu'à trouver le fonction que tu va réellement mettre, parcequ'un "*5" c'est pas terrible :D 
pense plutot à une fonction définie par partie, au début nulle, puis parabolique, puis linéaire. ou un truc du genre.
10, qui évolue selon le timestamp (type que j'ai mit dans la table pour la date de plantation) ?

donc, avec l'aide aussi d'autres personnes et de la tienne, j'ai put faire et avoir ceci :


// Calcul d'une durée (type pour choisir en minutes ou en jours)
// substr c pour selectionner une partie de la chaine, les arguments // sont substr(chaine,debut,fin), compté en nombre de caractere
function duree($avant,$type) {
// avant est la date au format 0000-00-00 00:00:00 => date("Y-m-d H:i:s")
// C'est la date qui est enregistré dans la base de données lors de la derniere visite
// ici on prend l'exemple de hier à 20h => 2004-02-18 20:15:00
$a=substr($avant,0,4); // on stocke dans a le nombre des années (0,4 => 2004
$m=substr($avant,5,2); // $m=02 $j=substr($avant,8,2); // $j=18
$h=substr($avant,11,2); // $h=20
$mi=substr($avant,14,2); //$mi=15
$se=substr($avant,17,2); //$se=0
// on vérifie que c bien une date valide pour calculer le temps (donc que il y a au moins une année, un mois et un jour, le reste peut etre égal a 0
if ($a!=0000 and $m!=00 and $j!=00) {
// Convertir tout ça en un nombre entier de seconde (pour aviter de calculer depuis l'an 0 le calcul se fait a parti de 1970)
$timestamp = mktime($h, $mi, $se, $m, $j, $a ); // la fonction time donne la date d'aujourd'hui directement en seconde // (tjs par raport a 1970)

$maintenant = time();
// l'écart de seconde entre les deux date : celle enregistré dans la bdd ($avant) et la date d'ajourd'hui
$ecart_secondes = abs($maintenant - $timestamp);
// une fois l'écart en seconde un calcul pour convertir en minutes, ou en jour (un jour = 86400 secondes ;)
if ($type=="m") { $duree=floor($ecart_secondes/60); }
if ($type=="j") { $duree=floor($ecart_secondes/86400); }
} else { $duree=0; }
return $duree;
}
ta table est un peu comme ça

|--------|--------|----------------------|
| Pseudo | taille | date |
|--------|--------|----------------------|
| Murat | 15 | 2004-02-18 20:15:00 |
|--------|--------|----------------------|

les accès bd pour récupérer les variables et ensuite pour faire grandir :

// $date est la date qu'il faut récuperer dans la base de donnée, "m" signifie que le résultat de la fonction duree en minutes
$temps_ecoule=duree($date,"m");
// $taille est la taille récuperer dans la base de données, l'incrémenter de (2*$temps_ecoule)
// la plante pousse de 2 cm par minute, // donc fo sans doute revoir le calcul, 0.01 serait serai mieux :D
$taille+=2*$temps_ecoule;

echo 'Votre plante fait maintenant '.$taille.' cm';


mais bon, je n'arrive pas du tout a faire un script complet pour avoir un code
bien fait, donc si quelqu'un peut m'aider a faire un script complet avec les indications en haut, je lui serai très reconnaissant, car malgré ca, je n'y arrive pas du tout :/  j'y ai passer la nuit mais je n'y arrive pas du tout :( 

Merci a ceux qui peuvent m'aider :jap: 
Lassé par la pub ? Créez un compte