srkigane
Messages postés7Date d'inscriptionvendredi 14 mars 2014StatutMembreDernière intervention22 avril 2015
-
Modifié par jordane45 le 22/04/2015 à 01:22
cgandco -
26 avril 2015 à 09:07
Amis codeur bonjour,
j'ai malheureusement besoin de vous une fois de plus pour une petite précision si vous avez quelques minutes a m'accorder biensur :)
Voila je recherchais un compte a rebours journalier caler sur la même heure chaque jour et impossible de trouver ce genre de code sans y intégré forcement une année, un mois, un jour...
donc, je me suis risquer a télécharger un code qui proposais un compte a rebours avec année / mois / jour / etc... pour essayer de le modifier.
n'étant pas très douer (pas du tout en faite) en codage, j'essaie d'apprendre mais certaines chose m'échappe.
Actuellement je dispose donc de ce code :
<SCRIPT LANGUAGE="JavaScript">
function affiche_compte_rebours()
{
calcul_compte_rebours(00,00);
}
function calcul_compte_rebours(heure,min) {
var date_jour=new Date(heure,min);
var date_fin=new Date();
var tps=(date_jour.getTime()-date_fin.getTime())/1000;
var h=Math.floor(tps / 3600);
tps=tps % 3600;
var m=Math.floor(tps/60);
tps=tps % 60
var s=Math.floor(tps);
var aff_heures = true;
var aff_min = true;
var aff_sec = true;
var txt = "";
if (aff_heures) {
var txt = txt +h+" h "; }
if (aff_min) {
var txt = txt +m+" min et "; }
if (aff_sec) {
var txt = txt +s+" sec"; }
//date_fin=don_date(date_fin);
valeur_compte_rebours.innerHTML = txt ;
setTimeout("calcul_compte_rebours("+heure+","+min+")",1000);
}
</SCRIPT>
ce code n'est pas de moi je l'ai juste trifouiller pour essayer d'en obtenir ce que je voulais mais au final c'est un échec pour moi.
Est ce que des personnes plus qualifier que moi pourrais me dire ou je me plante car je sèche...
je vous remercie d'avance :)
jordane45
Messages postés37840Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 novembre 2023342 22 avril 2015 à 02:16
Bonjour,
L'objet new Date se manipule ainsi :
Nom_de_l_objet = new Date(année, mois, jour, heures, minutes, secondes)
Si tu veux que ton script fonctionne tous les jours ... à la même heure... il faut que tu initialies les variables année mois jour ... avec la date du jour
<script type="text/javascript">
function affiche_compte_rebours() {
calcul_compte_rebours(0,0);
}
function calcul_compte_rebours(heure,min) {
var date_fin=new Date();
var annee = date_fin.getFullYear();
var mois = date_fin.getMonth();
var jour = date_fin.getDate();
var date_jour = new Date(annee , mois, jour, heure, min, 0)
var tps=(date_jour.getTime()-date_fin.getTime())/1000;
var h=Math.floor(tps / 3600);
tps=tps % 3600;
var m=Math.floor(tps/60);
tps=tps % 60
var s=Math.floor(tps);
var aff_heures = true;
var aff_min = true;
var aff_sec = true;
var txt = "";
if (aff_heures) {
var txt = txt +h+" h "; }
if (aff_min) {
var txt = txt +m+" min et "; }
if (aff_sec) {
var txt = txt +s+" sec"; }
var valeur_compte_rebours = document.getElementById('id_element_ou_afficher');
valeur_compte_rebours.innerHTML = txt ;
setTimeout("calcul_compte_rebours("+heure+","+min+")",1000);
}
</script>
<!-- exemple de div pour afficher ! -->
<div id="id_element_ou_afficher"></div>
Tu n'oublieras pas de modifier la ligne :
var valeur_compte_rebours = document.getElementById('id_element_ou_afficher');
Afin de lui indiquer l' ID de la DIV ou de l'élément HTML dans lequel tu veux afficher ton info !
Je n'ai pas testé le code.. donc si tu as des souci :
1 - Utilises le debogueur de ton navigateur ( je te recommande d'installer le plugin FIREBUG pour FireFox et de le lancer ..afin de regarder dans la "console" s'il n'y aurait pas des erreurs de script)
2 - reviens avec le code complet corrigé...(html compris) qu'on puisse tester dans les mêmes conditions que toi.
Bien le bonjour Jordane :)
merci de voler a mon secoure une fois encore ^^
Alors voila,
ce coup ci le script fonctionne j'ai ajouter ligne par ligne et fait les modification progressivement avec ce que tu m'a mentionner pour voir l'évolution de "la chose" et je pensse avoir aboutie sur quelques chose .
<SCRIPT LANGUAGE="JavaScript">
function affiche_compte_rebours() {
calcul_compte_rebours(2015,04,22,02,55);
}
function calcul_compte_rebours(annee,mois,jour,heure,min) {
var date_jour=new Date(annee,mois,jour,heure,min, 0);
var date_fin=new Date();
var annee = date_fin.getFullYear();
var mois = date_fin.getMonth();
var jour = date_fin.getDate();
var tps=(date_jour.getTime()-date_fin.getTime())/1000;
var h=Math.floor(tps / 3600);
tps=tps % 3600;
var m=Math.floor(tps/60);
tps=tps % 60
var s=Math.floor(tps);
var aff_heures = true;
var aff_min = true;
var aff_sec = true;
var txt = "";
if (aff_heures) {
var txt = txt +h+" h "; }
if (aff_min) {
var txt = txt +m+" min et "; }
if (aff_sec) {
var txt = txt +s+" sec"; }
var valeur_compte_rebours = document.getElementById('valeur_compte_rebours');
valeur_compte_rebours.innerHTML = txt ;
setTimeout("calcul_compte_rebours("+annee+","+mois+","+jour+","+heure+","+min+")",1000);
}
</SCRIPT>
</head>
<body onload="affiche_compte_rebours();">
<!-- date -->
<div id="Html1" style="position:absolute;left:0px;top:0px;width:489px;height:44px;z-index:0">
<div id ="valeur_compte_rebours" style="margin:0;padding:0;text-align:center;color:#0076AE;font-family:'Arial Black';font-size:15px;">
</div>
</div>
Donc le décompte se fait correctement, par contre je n'ai pas saisi pour ce que tu ma dit :
"Si tu veux que ton script fonctionne tous les jours ... à la même heure... il faut que tu initialise les variables année mois jour ... avec la date du jour "
Car en effet une fois le décompte terminer il affiche du négatif et ne repart pas sur un nouveau cycle :/
Je doit modifier ces variables ci?
var date_fin=new Date(); var annee = date_fin.getFullYear(); var mois = date_fin.getMonth(); var jour = date_fin.getDate();
Car quand je modifie ces lignes, le compteur continue de défiler dans le négatif :/
J'ai réécris le code a ma façon, avec setInterval c'est plus simple a mon avis.
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>cgandco</title>
<script type="text/javascript">
function afficheCompteRebours(idElement, annee, mois, jour, heure, min)
{
var dateEnd = new Date(annee, mois - 1, jour, heure, min, 0); //date cible, en javascript le mois de janvier = 0
var compteRebours = document.getElementById(idElement); //on recherche une seule fois dans le DOM
var theTimer = setInterval(function ()
{
var dateNow = new Date();
var ecart = (dateEnd - dateNow) / 1000; //nombre de seconde entre les deux dates
var j = Math.floor(ecart / (24 * 60 * 60));
ecart = ecart % (24 * 60 * 60);
var h = Math.floor(ecart / (60 * 60));
ecart = ecart % (60 * 60);
var m = Math.floor(ecart / 60);
ecart = ecart % 60;
var s = Math.floor(ecart);
var txt = "";
if (j > 0)
{
txt = j + " j ";
}
if (h > 0)
{
txt = txt + h + " h ";
}
if (m > 0)
{
txt = txt + m + " min et ";
}
txt = txt + s + " sec";
if (dateNow >= dateEnd) //si on est plus tard que date cible
{
compteRebours.innerHTML = "On y est !!!";
clearInterval(theTimer);
}
else
{
compteRebours.innerHTML = txt;
}
}, 1000);
}
</script>
</head>
<body onload="afficheCompteRebours('valeur_compte_rebours',2015, 4, 26, 09, 1);">
<!-- date -->
<div id="Html1" style="position: absolute; left: 0px; top: 0px; width: 489px; height: 44px; z-index: 0">
<div id="valeur_compte_rebours" style="margin: 0; padding: 0; text-align: center; color: #0076AE; font-family: 'Arial Black'; font-size: 15px;">
</div>
</div>
</body>
</html>
Modifié par kazma le 22/04/2015 à 09:18
merci de voler a mon secoure une fois encore ^^
Alors voila,
ce coup ci le script fonctionne j'ai ajouter ligne par ligne et fait les modification progressivement avec ce que tu m'a mentionner pour voir l'évolution de "la chose" et je pensse avoir aboutie sur quelques chose .
Donc le décompte se fait correctement, par contre je n'ai pas saisi pour ce que tu ma dit :
"Si tu veux que ton script fonctionne tous les jours ... à la même heure... il faut que tu initialise les variables année mois jour ... avec la date du jour "
Car en effet une fois le décompte terminer il affiche du négatif et ne repart pas sur un nouveau cycle :/
Je doit modifier ces variables ci?
Car quand je modifie ces lignes, le compteur continue de défiler dans le négatif :/