JeuWeb - Crée ton jeu par navigateur
[Résolu][Javascript] Comment faire un décompte du temps de construction ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu][Javascript] Comment faire un décompte du temps de construction ? (/showthread.php?tid=5947)

Pages : 1 2 3


RE: [Javascript] Comment faire un décompte du temps de construction ? - InboX - 31-01-2012

==> Est-ce que ta console Javascript t'affiche des erreurs ?
(Oui [14:33:00,841] missing } in XML expression)

==> Est-ce que tu as bien jQuery ?
Oui j'ai bien Jquery

==> Est-ce que ton code PHP génère le même HTML que le mien
Exactement le même j'ai changé ma version de Jquery

mais il me dit toujours Terminé dans Caserne et Moulin meme si je change la date dans les div

Cordialement,




RE: [Javascript] Comment faire un décompte du temps de construction ? - Sephi-Chan - 31-01-2012

Donc tu as une erreur Javascript… Il faut que tu la debug.


RE: [Javascript] Comment faire un décompte du temps de construction ? - InboX - 31-01-2012

certes mais il dit pas la ligne ou est l'erreur
ça risque d’être assez dur de corrigé

Cordialement,


RE: [Javascript] Comment faire un décompte du temps de construction ? - Argorate - 31-01-2012

Utilise le pas à pas... (avec les points d’arrêt au bon endroit)


RE: [Javascript] Comment faire un décompte du temps de construction ? - niahoo - 31-01-2012

Si c'est une accolade qui te manque, un bon éditeur de texte devrait t'aider à trouver ça facilement.


RE: [Javascript] Comment faire un décompte du temps de construction ? - InboX - 31-01-2012

Merci bien Smile
le problème vient de la date en faite il accepte sous la forme de
January 31, 2012 18:00:00

Me reste plus que le compteur a faire plus jolie
sinon c'est les même syntaxe que java pour les heure minute ?

Cordialement,


RE: [Javascript] Comment faire un décompte du temps de construction ? - Sephi-Chan - 31-01-2012

C'est curieux car ça fonctionne bien dans le JSFiddle que je t'ai envoyé.
Ça fonctionne chez toi aussi sur ce site ? Si oui, c'est que tu n'as pas respecté le format YYYY-MM-DD HH:MM:SS. Smile


RE: [Javascript] Comment faire un décompte du temps de construction ? - InboX - 31-01-2012

Oui très bien.

Sinon voici le script fini avec les (Jours,Heures,Minutes,Secondes)


<script type="text/javascript">
// Transforme le nombre de secondes restant en une chaîne.
// Modifie cette fonction pour un affichage plus joli.
window.remainingTimeAsString = function(remainingTimeInSeconds){
console.log("Convert: ", remainingTimeInSeconds);
string = remainingTimeInSeconds + " secondes";
return string;
}


// Met à jour les compteurs de la page.
window.updateBuildingsTimers = function(){
$("#buildings > div").each(function(index, building){
var $building = $(building),
$displayer = $building.find(".displayer"),
finishAt = new Date($building.data("finish-at")),
now = new Date();

// Si le bâtiment n'est pas encore terminé, on actualise l'affichage.
if(now < finishAt){
// On change l'affichage du compteur.
var remainingTimeInSeconds = Math.ceil((finishAt - now) / 1000),
DiffJour = Math.floor(remainingTimeInSeconds / 86400),
DiffHeure = Math.floor((remainingTimeInSeconds - (DiffJour * 86400)) / 3600),
DiffMin = Math.floor((remainingTimeInSeconds - ((DiffJour * 86400 + DiffHeure * 3600))) / 60);
DiffSec = Math.floor(remainingTimeInSeconds - ((DiffJour * 86400 + DiffHeure * 3600 + DiffMin * 60))),
newTimerText = DiffHeure + " Heure " +DiffMin + " Minutes " +DiffSec+ " Secondes"

$displayer.text(newTimerText);
}
else {
// On remplace le compteur pour mettre un lien à la place.
var url = $building.data("finish-url"),
$link = $('<a />', { href: url, text: "Terminé !" });

$displayer.html($link);
}
});
}


// Toutes les secondes, tu relances la fonction.
window.timer = setInterval(window.updateBuildingsTimers, 1000);
</script>


<div id="buildings">
<div id="building_1" data-finish-at="January 31, 2012 19:00:00" data-finish-url="http://url/for/link">
<h3>Caserne</h3>
<span class="displayer">…</span>
</div>
<div id="building_2" data-finish-at="2012-02-02 08:20:00" data-finish-url="http://url/for/link">
<h3>Moulin</h3>
<span class="displayer">…</span>
</div>
</div>

Téléchargement du nouveau Jquery:
http://jquery.com/


<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>

Merci pour votre aide Smile
Cordialement,


RE: [Javascript] Comment faire un décompte du temps de construction ? - Sephi-Chan - 31-01-2012

Pardon mais tu codes comme un cochon. Je t'avais préparé une fonction remainingTimeAsString en précisant bien que c'était là qu'il fallait modifier l'affichage pour quelque chose de plus joli, et toi tu mets un gros pâté dans le cœur du code. -.-

C'est plus lisible et maintenable comme ça.



RE: [Javascript] Comment faire un décompte du temps de construction ? - InboX - 31-01-2012

lol,

ba vi mais bon je connais pas trop jquery, j'ai fait comme je pouvais.
cochonne :p