Compteur avec incrémentation lié au temps

2 participants

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Compteur avec incrémentation lié au temps

Message par undertaker999 Jeu 28 Juil 2011 - 5:35

Bonjour,
Je cherche a configurer un compteur de population ^^

Voilà, j'ai une somme à une date de départ (Population initial de 1000 personnes) et je souhaiterais que la somme (Population Initial) augmente à chaque seconde.(de 0.01 par exemple ^^)

De plus je souhaiterais que le compteur ne reprenne pas le compte à la somme de départ quand on relance la page.

Est-ce possible ?

Après des recherches multiples sur le web, je semble avoir trouvé une piste de réponse...
http://www.flashkod.com/forum/sujet-COMPTEUR-AVEC-INCREMENTATION-LIEE-TEMPS_1291735.aspx

Par contre, n'ayant qu'une très maigre base en javascript, j'ai beaucoup de mal à comprendre les explications du membre...
C'est pourquoi je me tourne vers vous pour pouvoir m'expliquer le code ainsi que le complêter au nécessaire, si celui au lien (que je vous ai transmis) ne fonctionne pas...

Merci de l'attention que vous porterez à mon sujet,
Velp


Dernière édition par undertaker999 le Lun 1 Aoû 2011 - 2:12, édité 1 fois
undertaker999

undertaker999
*****

Masculin
Messages : 535
Inscrit(e) le : 20/12/2008

http://vous-etes-le-patron.net
undertaker999 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Compteur avec incrémentation lié au temps

Message par undertaker999 Ven 29 Juil 2011 - 21:19

Up
undertaker999

undertaker999
*****

Masculin
Messages : 535
Inscrit(e) le : 20/12/2008

http://vous-etes-le-patron.net
undertaker999 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Compteur avec incrémentation lié au temps

Message par undertaker999 Dim 31 Juil 2011 - 0:41

Biji !
undertaker999

undertaker999
*****

Masculin
Messages : 535
Inscrit(e) le : 20/12/2008

http://vous-etes-le-patron.net
undertaker999 a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Compteur avec incrémentation lié au temps

Message par Ea Dim 31 Juil 2011 - 1:59

Bonjour,


Pour avoir par rapport à une date il suffit de faire :

Code:
<span id="pc"></span>
<script type="text/javascript">

   // 30 juillet ( il faut mettre le numéro du mois moins 1 ) 2011 à 20h05 et 45 secondes.
   var pc_date= new Date(2011,6,30,20,5,45);
   // le javascript utilise le . comme virgule
   var pc_fract= 1.01;
   var pc_current= 1000 * Math.pow(pc_fract,Math.floor((new Date()-pc_date)/1000));

   jQuery("#pc").text(Math.floor(pc_current));

   setInterval('jQuery("#pc").text(Math.floor(pc_current*=pc_fract))',1000);

</script>
On fait juste 1000 ( population de départ ) fois 1,01 exposant le nombre de seconde entre la date de départ et maintenant.

Cela nous donne donc la population à l'ouverture de la page, ensuite toutes les secondes on multiplie la population par 1,01.

Sinon là juste avec quelques heures ça donne 2*10^115 mais c'est normal le facteur d'augmentation 1,01 c'est très grand, si une population se multiplie par 2 en un an, son facteur d'augmentation à la seconde est d'environ : 0,000000022.

Si ce que vous vouliez c'était que suivant le nombre de seconde qu'un utilisateur soit resté sur la page ça augmente et juste pour lui, alors il faudrait plutôt quelque chose comme ceci :

Code:
<span id="pc"></span>
<script type="text/javascript">

   var pc_fract= 1.01;
   var pc_current= my_getcookie("pc_current") || 1000;

   jQuery("#pc").text(Math.floor(pc_current));

   setInterval('jQuery("#pc").text(Math.floor(pc_current*=pc_fract));my_setcookie("pc_current",pc_fract,1,0)',1000);

</script>
Donc au départ la valeur est soit la valeur du cookie pc_current soit ( si le cookie n'existe pas ) 1000.

Ensuite à chaque seconde, la valeur est multipliée par 1,01 et sauvée dans le cookie.


Dernière édition par Etana le Dim 31 Juil 2011 - 6:01, édité 1 fois
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Compteur avec incrémentation lié au temps

Message par undertaker999 Dim 31 Juil 2011 - 5:14

Tout d'abord,

je tiens personnellement à vous remercier pour le temps que vous m'avez réserver pour réaliser ces magnifiques codes, tout deux me seront très utilses, même si mon idée initial était plus le premier code que vous avez réalisé...
- Si j'ai bien compris que pour tous les navigateurs, la valeur créer à partir de la date est visible et identique pour tous ?

Malheureusement, n'étant pas très fort en Javascript comme j'ai pu le décrire dans mon sujet précédent, j'ai aucune idée comment faire apparaitre les valeurs... En effet, comme vous le savez surement, en copiant et en collant votre code dans une page html par exemple, la page reste blanche,
- alors que mon souhait serait de faire apparaitre la valeurs de la population...

Certainement que c'est très simple pour vous, alors je vous fais entièrement confiance pour pouvoir m'éclairer pour le code restant...

Très Sincèrement,
Velp
undertaker999

undertaker999
*****

Masculin
Messages : 535
Inscrit(e) le : 20/12/2008

http://vous-etes-le-patron.net
undertaker999 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Compteur avec incrémentation lié au temps

Message par Ea Dim 31 Juil 2011 - 6:32

En effet, comme vous le savez surement, en copiant et en collant votre code dans une page html par exemple, la page reste blanche,
- alors que mon souhait serait de faire apparaitre la valeurs de la population...
Cela utilise la librairie jQuery qui est inclue sur toutes les pages du forum ( mais pas sur les pages html sans le haut ni le bas du forum ).

Enfin voilà l'équivalent du premier code sans jQuery :

Code:
<span id="pc">/</span>
<script type="text/javascript">

  // 30 juillet ( il faut mettre le numéro du mois moins 1 ) 2011 à 20h05 et 45 secondes.
  var pc_date= new Date(2011,6,30,20,5,45);
  // le javascript utilise le . comme virgule
  var pc_fract= 1.01;
  var pc_current= 1000 * Math.pow(pc_fract,Math.floor((new Date()-pc_date)/1000));

  document.getElementById("pc").innerText=""+Math.floor(pc_current);

  setInterval('document.getElementById("pc").innerText=""+Math.floor(pc_current*=pc_fract)',1000);

</script>

Si j'ai bien compris que pour tous les navigateurs, la valeur créer à partir de la date est visible et identique pour tous ?
Non, cela se base sur l'heure de l'ordinateur donc si vous avez un membre au japon et que vous êtes au canada il aura 13h d'avance.

Pour utiliser tous l'heure UTC il faudrait :

Code:
<span id="pc">/</span>
<script type="text/javascript">

  // 30 juillet ( il faut mettre le numéro du mois moins 1 ) 2011 à 20h05 et 45 secondes.
  var pc_date= new Date(2011,6,30,20,5,45);
  // le javascript utilise le . comme virgule
  var pc_fract= 1.01;
  var pc_current= 1000 * Math.pow(pc_fract,Math.floor(new Date()+(60000*(new Date()).getTimezoneOffset())-pc_date)/1000);

  document.getElementById("pc").innerText=""+Math.floor(pc_current);

  setInterval('document.getElementById("pc").innerText=""+Math.floor(pc_current*=pc_fract)',1000);

</script>
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Compteur avec incrémentation lié au temps

Message par undertaker999 Dim 31 Juil 2011 - 19:04

Bonjour Etana,

Merci des corrections et des informations supplémentaires apportés...

Malheureusement, je constate à nouveau que le script ne donne pas le résultat voulu...

Le script (UTC) dans les messages
Compteur avec incrémentation lié au temps Erreur10

le script (UTC) dans les pages html
Compteur avec incrémentation lié au temps Erreur11

Je n'es pas trouvé de bouton pour activé les codes javascript, comme pour le html alors je me tourne à nouveau vers vous pour corriger mon problème,

Très Sincèrement,
Velp
undertaker999

undertaker999
*****

Masculin
Messages : 535
Inscrit(e) le : 20/12/2008

http://vous-etes-le-patron.net
undertaker999 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Compteur avec incrémentation lié au temps

Message par Ea Lun 1 Aoû 2011 - 0:06

Ah il devait manquer un +, comme ceci ça devrait aller :

Code:
<span id="pc">/</span>
<script type="text/javascript">
   
    // 30 juillet ( il faut mettre le numéro du mois moins 1 ) 2011 à 20h05 et 45 secondes.
    var pc_date= new Date(2011,6,30,20,5,45);
    // le javascript utilise le . comme virgule
    var pc_fract= 1.0001;
    var pc_current= 1000 * Math.pow(pc_fract,Math.floor(+new Date()+(60000*(new Date()).getTimezoneOffset())-pc_date)/1000);
   
    document.getElementById("pc").innerText=""+Math.floor(pc_current);
   
    setInterval('document.getElementById("pc").innerText=""+Math.floor(pc_current*=pc_fract)',1000);
   
</script>
Test là : http://jsfiddle.net/NztQt/

Pour le script dans le post, c'est parce que les scripts ne sont pas autorisés, mais vous pouvez mettre dans les codes de javascript sur toutes les pages de sujets :

Code:
// 30 juillet ( il faut mettre le numéro du mois moins 1 ) 2011 à 20h05 et 45 secondes.
var pc_date = new Date(2011, 6, 30, 20, 5, 45);
// le javascript utilise le . comme virgule
var pc_fract = 1.0001;
var pc_current = 1000 * Math.pow(pc_fract, Math.floor(+new Date() + (60000 * (new Date()).getTimezoneOffset()) - pc_date) / 1000);

$(function() {
    $(".pc").text(Math.floor(pc_current));
    setInterval('$(".pc").text(Math.floor(pc_current*=pc_fract))', 1000);
});
Et mettre où vous voulez le compteur <span class="pc"></span> ( exemple : http://jsfiddle.net/NztQt/1/ ).
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Compteur avec incrémentation lié au temps

Message par undertaker999 Lun 1 Aoû 2011 - 2:12

Merci Beaucoup Etana pour tout le temps que vous avez réservé pour notre forum... Votre est très grandement apprécié et nous vous souhaitons bonne continuation dans votre futur...

Bien à vous,
L'équipe de Velp
undertaker999

undertaker999
*****

Masculin
Messages : 535
Inscrit(e) le : 20/12/2008

http://vous-etes-le-patron.net
undertaker999 a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum